javascript - NodeJS Express Api——调用 res.send 外部路由有效,但 res.status 无论如何都不起作用

标签 javascript node.js rest express

为了在我的快速路线页面中保持干净,我有一个在每条 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/

相关文章:

node.js - OpenShift 上的 MongoDB 命令被拒绝

c# - 编写带有 URI 和 DataContract 类参数的 Web 服务方法

javascript - 如何使用下划线js转换这些数据?

javascript - 如何传递元素前面的类总数?

javascript - 使用 ng-html-bind 时无法滚动

javascript - Onsen UI 破坏了我的 PayPal 脚本(以及所有其他 javascript)

javascript - 在 apache 中运行 Node.js?

ruby-on-rails - Warden vs Rack::Auth::Basic。在 Ruby-Framework 中执行 HTTP-Basic-Auth

javascript - 将日期选择器添加到动态添加的 HTML div

javascript - 识别带有一个异步函数调用的嵌套 FOR 循环和 IF 语句何时完成