Sequelize Устаревшее сообщение об ошибке
Я очень новичок в Node, и я обдумываю, как работают ORM и Sequelize. Я был на веб-сайте Sequelize и скопировал строку подключения и изменил ее для работы с моей базой данных. Когда я запускаю файл, он, кажется, выполняет ОК, создавая таблицу в моей базе данных, но я получаю сообщение об ошибке. "Операторы на основе строк теперь устарели. Пожалуйста, используйте операторы на основе символа для лучшей защиты... node_modules/sequelize/lib/sequelize. js: 236: 13 "Я понимаю, почему операторы устарели, однако, поскольку я установил это как новый пакет и использовал строку подключения из документации, таким образом, избегая использования каких-либо незаконных операторов, я прав, если предположить, что это сообщение об ошибке только для информации и не отражается в коде, который я только что использовал.
Я включаю мой файл приложения, который вызывает ошибку, это пароль, который может вызвать это.
const express = require('express');
const app = express();
const Sequelize = require('sequelize');
const db = new Sequelize('myDBName', 'mYuSeRnAmE', 'mYpAsSw!ORd$', {
host: 'mySqlserverName',
dialect: 'mssql',
pool: {
max: 5,
min: 0,
idle: 10000
},
});
var Article = db.define('Article', {
title: Sequelize.STRING,
body: Sequelize.TEXT
});
db.sync();
module.exports = app;
**** Редактировать ****
Я понял это, я оставлю этот ответ, только если кто-то еще столкнется с проблемой. Вы должны включить {operatorAliases: false}, чтобы избавиться от сообщения об ошибке в соединении.
Ответы
Ответ 1
Это были лучшие объяснения, которые я нашел для этого предупреждения об устаревании:
https://github.com/sequelize/sequelize/issues/8417
http://docs.sequelizejs.com/manual/tutorial/querying.html#operators-aliases
Добавление "операторовAliases: false" переопределило предупреждающее сообщение в моем приложении.
const Sequelize = require('sequelize')
const sequelize = new Sequelize(
DB_NAME,
USERNAME,
PASSWORD,
{
host: HOSTNAME,
dialect: 'mysql',
logging: false,
freezeTableName: true,
operatorsAliases: false
}
)
Примечание: начиная с [email protected] я начал получать ошибки "Недопустимое значение" из Sequelize. Я смягчил и использовал следующий код для включения операторов символов:
const Sequelize = require('sequelize')
const Op = Sequelize.Op
const sequelize = new Sequelize(
DB_NAME,
USERNAME,
PASSWORD,
{
host: HOSTNAME,
dialect: 'mysql',
logging: false,
freezeTableName: true,
operatorsAliases: {
$and: Op.and,
$or: Op.or,
$eq: Op.eq,
$gt: Op.gt,
$lt: Op.lt,
$lte: Op.lte,
$like: Op.like
}
}
)
Ответ 2
const sequelize = new Sequelize({
username: process.env.DBUSERNAME,
host: process.env.DBHOST,
database: process.env.DBNAME,
password: process.env.DBPASSWORD,
dialect: 'postgres',
define: {
timestamps: false,
},
operatorsAliases: false,
pool: {
max: 5,
min: 0,
idle: 10000
},
});
Ответ 3
Обновление до версии:
"sequelize": "^5.8.6"
и удаление operatorsAliases
new Sequelize()
снято предупреждение об амортизации