J'utilise Sequelize avec Node.js. J'essaie d'utiliser la demande Sequelize.op. Mais ça ne marche pas, voici mon code:
var Sequelize = require('sequelize');
const Op = Sequelize.Op;
const operatorsAliases = {
$eq: Op.eq
}
C'est l'erreur dans la console de noeud:
Avez-vous une idée ?
Merci
J'ai trouvé la solution, j'ai mis à jour la version séquentielle via npm, et ça marche. La solution est donc
npm i [email protected] --s
Dernière version pour l'instant:
4.22.2
models/user.js:
const Sequelize = require('sequelize');
const op = Sequelize.Op;
const operatorsAliases = {
$eq: op.eq,
$or: op.or,
}
module.exports = function(sequelize) {
var User = sequelize.define('user', {
id: { type: Sequelize.INTEGER, primaryKey: true, autoIncrement: true },
email: { type: Sequelize.STRING },
username: { type: Sequelize.STRING(120) },
...
});
User.beforeCreate((user, options) => {
var where = {
type: 1,
deleted: null,
// With aliases
$or: [{email: {$eq: user.email} }, { username: {$eq: user.username}}]
// Without aliases: Last version
//[op.or]: [ { email: user.email }, { username: user.username } ]
};
return User.findOne({ where: where })
.then(userFound => {
...
})
.catch(err => {
...
});
});
...
return User;
};
Je devais rétrograder
Mon package.json a spécifié "sequelize":"latest"
Donc, mon serveur installé sequelize "version": "5.8.2"
Apparemment, cette version de Sequelize pas a Sequelize.Op
; vous verrez donc l'erreur.
J'ai donc rétrogradé à la version 4.41.2
; J'ai spécifié explicitement dans mon package.json "sequelize":"4.41.2"