gpt4 book ai didi

node.js - Express.js- 添加响应主体

转载 作者:搜寻专家 更新时间:2023-10-31 22:22:29 26 4
gpt4 key购买 nike

我想在 Express.js 的响应对象中添加一个 body 属性,每次调用 send 方法时都会调用该属性,我通过添加以下代码作为中间件来实现,

但出于某种原因,当我调用 res.send 时,这个函数被调用了两次(一次是 body 是对象,第二次是同一个对象,但是是一个字符串)1.为什么会被调用两次?2.为什么以及什么时候将其转换为字符串?

   applicationsRouter.use(function (req, res, next) {
var send = res.send;
res.send = function (body) {
res.body = body
send.call(this, body);
};
next();
});

最佳答案

你可能正在使用这样的东西:

res.send({ foo : 'bar' });

换句话说,您正在将对象传递给 res.send

这将执行以下操作:

  • 以对象作为参数调用res.send
  • res.send checks the argument type并看到它是一个对象,它传递给 res.json
  • res.json 将对象转换为 JSON 字符串,并再次调用 res.send,但这次使用 JSON 字符串作为参数

关于node.js - Express.js- 添加响应主体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39611395/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com