javascript - 为什么我的 API 中的这个端点返回 [] 而不是 404 错误?
问题描述
我目前正在使用 Zeit Now 创建一些 API,当user
变量为[]
(一个空数组)时,我试图实现 404 错误,但是当我获取这个端点时,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)
}
解决方案
Because
[] === [] // false
So you want to check the length
property
if (user.length === 0) {
res.status(404).json({ message: 'User with these credentials doesn\'t exist.' })
return false
}
推荐阅读
- gensim - get_document_topics() 返回空的主题列表
- listview - Xamarin.Forms - 带有 SearchBar 的 ListView 冻结 UI
- logstash - 使用包含开始 [日期] [主机名] 的文本的解析日志的 Grok 解析问题
- java - 如何使用 Cognito 的密钥生成 RSAPublicKey
- php - 在 Wordpress 仪表板用户设置中更新用户密码后更改的电子邮件文本不起作用
- javascript - 导入并要求反应问题-无法读取未定义的属性“渲染”
- autoconf - MSYS2、autoconf 和 SetProcessAffinityMask
- php - 将图像上传到上传文件夹时出错
- sqlite - 离子框架中表中具有动态字段的Sqlite
- c# - 从字符串中选择href标签