node.js - Nodejs Express如何编写中间件来处理所有响应

标签 node.js express

在 Node JS Express 中,我们可以编写中间件来拦截对任一方的请求

  1. 通过调用 next 调用链中的下一个中间件
  2. 通过调用 res.sendres 提供的类似函数结束链

这意味着,每次我们想要结束请求并在特定中间件中发送响应时,我们都必须添加(至少)以下代码片段。

res.send();

有没有办法编写这样的响应帧中间件:

responseFrame = (res,req,responseData) => {
    res.send(responseData);
}

并且在route.js中,在所有路径上使用这个中间件

app.use(responseFrame);

然后,我们只需使用 next() 结束任何中间件,只要我们定义正确的路由,Express 就会负责发送响应(如果下一个中间件是 >responseFrame)

最佳答案

您可以使用 res.locals 来实现此目的。

https://expressjs.com/en/api.html#res.locals

关于node.js - Nodejs Express如何编写中间件来处理所有响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50211609/

相关文章:

javascript - res.render() 的目标中可用的 node.js javascript var

node.js - 如何让 formik 进行编译?

node.js - 使用 npm 在 linux (yocto) 上更新 nodejs

node.js - swagger apiexpress中的用户和角色授权

javascript - ejs获取嵌套对象

android - 如何将应用程序本地存储同步到数据库?

javascript - RethinkDB,引用错误: connection is not defined

javascript - mongodb中一条一条插入500k记录导致堆内存不足

javascript - 在 Node.js 中处理 "raw data"并在 Node Express 端点中传递数据

mysql - Sequelize 错误 : you must use the 'as' keyword to specify the alias of the association you want to include. - node.js