尽管未满足所有条件,但 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的显式值。