2017-10-05 112 views
3

我在Node.js中使用了sequelize。我正在嘗試使用Sequelize.op請求。但它不工作,這是我的代碼:Sequelize.op沒有定義

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

這是在節點控制檯錯誤:

enter image description here

你有什麼想法?

謝謝

+0

該錯誤不符合所提供的片的代碼。 你的代碼片段包含ne,而有關公式的錯誤說 –

+0

你有什麼版本的Sequelize?如果是v3,則可以使用以下文檔:https://github.com/sequelize/sequelize/blob/v3/docs/docs/querying.md –

回答

7

我找到了解決辦法,我更新通過NPM的sequelize版本,它的工作。因此,解決辦法是

npm i [email protected] --s

0

最後版本現在:

4.22.2 

型號/ 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; 
};