我正在使用 Postgres。
我想使用带有 findAll 的 sequalize.js 进行查询,通过计算字段,我得到了一个无法消除的奇怪行为。在实践中,在计算字段的值上,sequalize 插入阻止 Postgres 查询执行的双引号。
SELECT "first", "last", "email", "phone", "example.string"AS "accessToken" FROM "utenti"AS "utenti"
WHERE "utenti"."email"= 'xxxx' AND "utenti"."password"= 'xxxx');
粗体字有问题。如果我在计算的字段值上加上单引号,则查询运行良好
在与数据库的连接中,我添加了 quoteidentifiers: false ,但现在我遇到了点的问题。
如果计算域的值内有一个点,则再次添加双引号!!!!!!!!!!!!并查询 Postgres 不起作用
**这是一个node.js代码示例**
const getTableData = (req, res, db) => {
const accessToken='example.string'
db.utenti.findAll({
where: {
[db.Sequelize.Op.and]:
[
{"email":”xxxx”},
{"password":”xxxx”},
]
} ,
attributes: [ 'first','last','email','phone', [ accessToken , "accessToken"]]
})
.then(items => {
if(items.length){
res.json(items)
} else {
res.json({dataExists: 'false'})
}
})
.catch(err => res.status(400).json({dbError: 'db error'}))
}
帮助将不胜感激谢谢
最佳答案
你可以改变这个:
accessToken='example.string'
至 :
accessToken='$example.string$'
关于node.js - sequelize.js - 如何从 sequelize 生成的查询中删除双引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61845829/