javascript - Sequelize 无效值 Symbol(ne)

标签 javascript node.js postgresql express sequelize.js

我在 Express Node.js 服务器上运行了以下两个文件:

首页.js

var express = require('express')
var sequelize = require('sequelize')
var db = require('../../shared/db.js')

var op = sequelize.Op

var router = express.Router()

router.get('/home', function(req, res, next) {
    db.shared.person.findAll({
        where: {
            email: {
                [op.ne]: null
            }
        },
        order: ['id']
    }).then(function (person) {
        res.locals = {
            person: person
        }
        res.render('home')
    })
})

module.exports = router

db.js

var sequelize = require('sequelize')

var config = {
  host: 'localhost',
  port: 5432,
  username: '...',
  password: '...',
  database: 'postgres',
  dialect: 'postgres',
  operatorsAliases: false
}
var db = new sequelize(config)

module.exports = {
  shared: {
    person: db.define('person', {
      id: {
        type: sequelize.INTEGER,
        primaryKey: true
      },
      name: sequelize.STRING,
      email: sequelize.INTEGER
    }, { freezeTableName: true , timestamps: false, schema: 'shared' }),
  }
}

当我尝试运行这个查询时,我收到一个错误声明 Unhandled rejection Error: Invalid value { [Symbol(ne)]: null }

我做错了什么?我可以使用 $ne 甚至 ne 都很好,但它们已被弃用并且使用起来并不完全安全。此外,不仅仅是 [op.ne] - 当我使用任何这样的条件时,我会收到此错误。

我是基于这个 guide所以我不太确定我在这里做错了什么。

最佳答案

Unhandled rejection Error: Invalid value 如果您没有像这样设置字符串别名,也可能会出现:

const Op = Sequelize.Op;
const operatorsAliases = {
  $eq: Op.eq,
  $ne: Op.ne,
  ...
  $any: Op.any,
  $all: Op.all,
  $values: Op.values,
  $col: Op.col
};

const connection = new Sequelize(db, user, pass, { operatorsAliases });

但是,最好从代码中删除基于字符串的别名并使用 [Op.ne],例如,Sequlize 计划很快弃用它们。

关于javascript - Sequelize 无效值 Symbol(ne),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47379702/

相关文章:

javascript - 如何渲染 .ejs 文件并在 Node js 中与 webpack 捆绑后查看它?

postgresql - 使用 Postgres 的 Knex 迁移总是说 'Already up to date'

postgresql - 从 jsonb 数组中删除元素

javascript - contentDocument.documentURI 替代IE6和IE7?

javascript - 转换脚本以处理多个实例

javascript - 如何根据数组属性的索引拆分和合并javascript对象

javascript - 如何正确处理在 node-webkit 中打开 _blank 窗口的链接?

javascript - 使用 Visual Studio 代码调试控制台时 Chrome 崩溃

javascript - 如何在 Jasmine 中调用 Web 服务?

java - 如何在 JDBC 中创建断言?