尽管未满足所有条件,但 Sails js findOne() returns 结果
Sails js findOne() returns result despite all criteria not met
我在这里遇到了挑战。 Sails Model.findOne() 旨在根据设定的条件搜索数据库。但是我无法解释我得到的结果。我设置了两个条件,adminId 和 authToken。两者都应通过 http 请求接收。我的 adminId 已设置,但我的 authToken 未定义。然而,我返回的结果是设置了 authToken 的结果。我预计错误不是有效响应。为什么请?
请看下面的代码:
...
const authToken = req.headers['auth-key'];
const adminId = req.param('adminId');
console.log("IDs", authToken);
const sessionExist = await Session.findOne({adminId, authToken})
console.log("session", sessionExist);
...
与此同时,我的控制台显示以下内容
IDs undefined
session {
createdAt: 1582374230905,
updatedAt: 1582374230906,
id: 1,
adminId: 3,
authToken: 'fLREaL2BS0QSQHveUo3ZECfVxFJGk7MKxVBoON94Afoj2+tYS5tow5t14/JdcMCy9x+7P6evkLsCCNw4RjPBhHR/Q0UM5hjJPA=='
}
您提到的未定义值是一种奇怪的情况,Mike 已在此处介绍过这种情况:https://github.com/balderdashy/sails/issues/4639#issuecomment-320369193
考虑将未定义类型转换为未定义类型以外的类型:
const authToken = req.headers['auth-key'] || null;
以免查询undefined
的显式值。
我在这里遇到了挑战。 Sails Model.findOne() 旨在根据设定的条件搜索数据库。但是我无法解释我得到的结果。我设置了两个条件,adminId 和 authToken。两者都应通过 http 请求接收。我的 adminId 已设置,但我的 authToken 未定义。然而,我返回的结果是设置了 authToken 的结果。我预计错误不是有效响应。为什么请?
请看下面的代码:
...
const authToken = req.headers['auth-key'];
const adminId = req.param('adminId');
console.log("IDs", authToken);
const sessionExist = await Session.findOne({adminId, authToken})
console.log("session", sessionExist);
...
与此同时,我的控制台显示以下内容
IDs undefined
session {
createdAt: 1582374230905,
updatedAt: 1582374230906,
id: 1,
adminId: 3,
authToken: 'fLREaL2BS0QSQHveUo3ZECfVxFJGk7MKxVBoON94Afoj2+tYS5tow5t14/JdcMCy9x+7P6evkLsCCNw4RjPBhHR/Q0UM5hjJPA=='
}
您提到的未定义值是一种奇怪的情况,Mike 已在此处介绍过这种情况:https://github.com/balderdashy/sails/issues/4639#issuecomment-320369193
考虑将未定义类型转换为未定义类型以外的类型:
const authToken = req.headers['auth-key'] || null;
以免查询undefined
的显式值。