Sequelize.op未定义

Ana*_*aez 11 node.js sequelize.js reactjs

我正在使用Node.js的sequelize.我正在尝试使用Sequelize.op请求.但它不起作用,这是我的代码:

var Sequelize = require('sequelize');
const Op = Sequelize.Op;
const operatorsAliases = {
$eq: Op.eq
}
Run Code Online (Sandbox Code Playgroud)

这是节点控制台中的错误:

在此输入图像描述

你有什么主意吗 ?

谢谢

Ana*_*aez 15

我找到了解决方案,我通过npm更新了sequelize版本,这是有效的.所以解决方案是

npm i sequelize@4.13.5 --s


ald*_*tis 12

目前的最新版本:

4.22.2
Run Code Online (Sandbox Code Playgroud)

型号/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;
};
Run Code Online (Sandbox Code Playgroud)


Ana*_*eru 9

或者在 ES5 中 >

import { Op } from "sequelize";
Run Code Online (Sandbox Code Playgroud)