Подтвердить что ты не робот

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}, чтобы избавиться от сообщения об ошибке в соединении.

4b9b3361

Ответ 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()

снято предупреждение об амортизации