我正在尝试构建一个用于发布和插入数据的 API。因此我可以将数据发布到发布端点,从数据库获取所有数据,并使用 id 从特定行获取特定数据。我希望当我尝试查询一个不存在的ID时返回这样的json
[
{
"error": "no record found in DB"
}
]
这是我正在使用的代码
app.get('/users/:id',async(req,res)=>{
try {
const id = req.params.id
conn = await pool.getConnection()
const result = await conn.query("select * from info where id=?",id)
if(!result){
res.json({
"error":"no such record in database"
})
}else{
res.send(result)
}
} catch (error) {
res.send(error)
}
})
我尝试在块内使用 if 语句,希望如果查询没有返回任何内容,它会执行,而是返回一个空的 json
connection.query()
不会返回任何可能被 视为“虚假” 的内容;因此,你的逻辑永远不会进入用简单的 if(!result)
表达式门控的逻辑分支。
相反,您应该期望成功的查询(可能返回 0 或更多行,但否则已成功执行)返回一个 Array
result-set
。改为测试返回结果集的长度:
if (result.length === 0) { // ...