Hay*_*rry 2 javascript postgresql node.js 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
Run Code Online (Sandbox Code Playgroud)
数据库.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' }),
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试运行此查询时,我收到一个错误声明 Unhandled rejection Error: Invalid value { [Symbol(ne)]: null }
我究竟做错了什么?我可以使用$ne,甚至ne很好,但它们已被弃用,使用起来并不完全安全。此外,这不仅仅是[op.ne]- 当我使用任何这样的条件时,我会收到此错误。
我将这一切都建立在本指南的基础上,所以我不确定我在这里做错了什么。
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 });Run Code Online (Sandbox Code Playgroud)
但是,最好从代码中删除基于字符串的别名并使用 [Op.ne],例如,Sequlize 计划很快弃用它们。
| 归档时间: |
|
| 查看次数: |
14234 次 |
| 最近记录: |