为了在我的快速路由页面中保持整洁,我在每个路由中都有一个本地函数,该函数将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);
}
}`
答案 0 :(得分:1)
res.status(520)
仅在响应对象中设置状态值。它实际上并不发送响应。因此,要发送响应,您有几种选择。在Express的最新版本中,您可以使用以下快捷方式:
res.sendStatus(520);
这将设置状态并发送响应。
但是,您也可以在任何版本的Express中执行此操作:
res.status(520).end();
还要设置状态,然后发送响应。
答案 1 :(得分:0)
您应该结束回复,使用res.status(520).end()
代替res.status(520)