为了在我的快速路线页面中保持干净,我有一个在每条 route 调用的本地函数,它将 sql 查询与 req 和 res 对象一起传递。
这对于发送成功的结果和调用 res.send 工作正常。
我遇到的问题是我似乎无法找到让 res.status 工作的方法,无论语法如何,它都会超时并且在控制台或前端不会出现任何错误.
棘手的是,当它在特定路线内时它确实有效,但错误消息似乎没有被发送,而是只是空白主体?
`async function queryDatabase(queryParam, req, res) {
try {
const cp = new sql.ConnectionPool(config);
await cp.connect();
let result = await cp.request().query(queryParam);
cp.close();
res.send(result.recordset);
} catch (err) {
res.statusMessage = `Database error: ${err}`;
res.status(520);
}
}`
最佳答案
res.status(520)
仅在响应对象中设置状态值。它实际上并不发送响应。因此,要发送响应,您有多种选择。在较新版本的 Express 中,您可以使用此快捷方式:
res.sendStatus(520);
这将设置状态并发送响应。
但是,您也可以在任何版本的 Express 中执行此操作:
res.status(520).end();
它还设置状态然后发送响应。
关于javascript - NodeJS Express Api——调用 res.send 外部路由有效,但 res.status 无论如何都不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52916615/