我使用express在Nodejs中制作多个streamdata。
这就是我如何制作网址:
app.get('/temp/1', function(req, res){
res.send('hello, i am not modified')
})
我的问题是:是否可以修改该网址的响应?
我试过这样:
app.get(/modify/1, function(req, res){
app.get('/temp/1', function(req, res){
res.send('hello, i am modified')
})
res.send('done');
}
所以我认为响应已经改变,但实际上没有任何反应。 有没有办法实现它?
答案 0 :(得分:0)
以下是使用express-modify-response
的示例:
const modifyResponse = require('express-modify-response');
...
let modify = modifyResponse(
function(req, res) { return true }, // always modify the response
function(req, res, body) { return 'hello, i am modified' } // the new response
);
app.get('/temp/1', modify, function(req, res){
res.send('hello, i am not modified')
})
编辑:第二次尝试。您有一个发送特定响应的端点/temp/1
,并且您希望端点/modify/1
能够接收该响应并对其进行修改。
这需要一些抽象:
function someFunction(id) {
return 'hello, i am not modified';
}
app.get('/temp/1', function(req, res) {
res.send(someFunction(1));
});
app.get('/modify/1', function(req, res) {
let value = someFunction(1);
// Remove the word `not`.
value = value.replace(/not /, '');
res.send(value);
});
因此两个处理程序使用相同的函数,它提供实际输出,但/modify/1
在将输出返回给客户端之前修改输出。