Sails js findOne () возвращает результат, несмотря на все критерии, не выполненные - PullRequest
1 голос
/ 22 февраля 2020

У меня есть вызов здесь. 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=='
}

1 Ответ

2 голосов
/ 24 февраля 2020

Неопределенное значение, которое вы упомянули, является странным случаем, которое Майк рассмотрел здесь: https://github.com/balderdashy/sails/issues/4639#issuecomment -320369193

Рассмотрите приведение неопределенного типа к чему-то другому, чем undefined:

const authToken = req.headers['auth-key'] || null;

Чтобы не запрашивать явное значение undefined.

...