Почему эта конечная точка в моем API возвращает [], а не ошибку 404? - PullRequest
0 голосов
/ 13 января 2020

В настоящее время я создаю некоторый API с Zeit Now, и я пытался реализовать ошибку 404, когда переменная user равна [] (пустой массив), но когда я выбираю эту конечную точку, API отправляет [] также. Как я могу это реализовать? Это потому что user - это обещание?

const db = require('../../lib/db')
const escape = require('sql-template-strings')

module.exports = async (req, res) => {
  const user = await db.query(escape`
    SELECT *
    FROM users
    WHERE username = ${req.body.username}
    AND password = ${req.body.password}
  `)

  if (user === []) {
    res.status(404).json({ message: 'User with these credentials doesn\'t exist.' })
    return false
  }

  res.status(200).json(user)
}

1 Ответ

4 голосов
/ 13 января 2020

Потому что

[] === [] // false

Итак, вы хотите проверить свойство length

if (user.length === 0) {
    res.status(404).json({ message: 'User with these credentials doesn\'t exist.' })
    return false
}
...