2017-10-05 1 views
3

Ich benutze Sequelize mit Node.js. Ich versuche Sequelize.op Anfrage zu verwenden. Aber es funktioniert nicht, dies ist mein Code:Sequelize.op ist nicht definiert

var Sequelize = require('sequelize'); 
const Op = Sequelize.Op; 
const operatorsAliases = { 
$eq: Op.eq 
} 

Dies ist der Fehler in der Knoten Konsole:

enter image description here

Haben Sie eine Idee?

Danke

+0

Dieser Fehler entspricht nicht dem vorgesehenen Stück von Code. Dein Snippet enthält ne Fehlermeldung über eq –

+0

Welche Version von Sequelize hast du? Wenn es v3 ist, können Sie dieses Dokument verwenden: https://github.com/sequelize/sequelize/blob/v3/docs/docs/querying.md –

Antwort

7

ich die Lösung gefunden, ich habe die sequelize Version über npm aktualisiert, und es ist Arbeit. So ist die Lösung

npm i [email protected] --s

0

Letzte Version für jetzt:

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; 
};