web-dev-qa-db-fra.com

Message d'erreur obsolète Sequelize

Je suis très nouveau à Node et je me renseigne sur le fonctionnement d'ORM et de Sequelize. J'ai été sur le site Web de Sequelize et j'ai copié la chaîne de connexion et l'ai modifiée pour qu'elle fonctionne avec mon Lorsque j'exécute le fichier, il semble exécuter OK en créant la table dans ma base de données mais j'obtiens l'erreur "Les opérateurs basés sur des chaînes sont maintenant obsolètes. Veuillez utiliser des opérateurs basés sur des symboles pour une meilleure sécurité .... node_modules/sequelize/lib/sequelize.js: 236: 13 "Je comprends pourquoi les opérateurs ont été dépréciés, cependant comme j'ai installé cela comme un nouveau package et utilisé la chaîne de connexion de la documentation, évitant ainsi d'utiliser des opérateurs illégaux, j'ai raison de supposer cette erreur le message est pour info seulement et ne se reflète pas dans le code que je viens d'utiliser.

J'inclus mon fichier pour l'application qui provoque l'erreur, est-ce le mot de passe qui peut être à l'origine de cela.

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;

**** Modifier ****

Je l'ai compris, je vais laisser cette réponse au cas où quelqu'un d'autre rencontrerait le problème. Vous devez inclure {operatorsAliases: false} pour vous débarrasser du message d'erreur dans la connexion.

12
JK36

Ce sont les meilleures explications que j'ai trouvées pour cet avertissement de dépréciation:

https://github.com/sequelize/sequelize/issues/8417

http://docs.sequelizejs.com/manual/tutorial/querying.html#operators-aliases

L'ajout de "operatorsAliases: false" a remplacé le message d'avertissement dans mon application.

const Sequelize = require('sequelize')
const sequelize = new Sequelize(
  DB_NAME,
  USERNAME, 
  PASSWORD,
  {
    Host: HOSTNAME,
    dialect: 'mysql',
    logging: false,
    freezeTableName: true,
    operatorsAliases: false
  }
)

Remarque: à partir de [email protected], j'ai commencé à recevoir des erreurs de "valeur non valide" de Sequelize. J'ai abandonné et utilisé le code suivant pour activer les opérateurs de symboles:

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
    }
  }
)
31
user3139574

Mise à jour vers la version:

"sequelize": "^5.8.6"

et supprimer operatorsAliases param de

new Sequelize()

avertissement de dépréciation supprimé

3
BartusZak
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
  },

});
0
Frank HN