相关疑难解决方法(0)

如何在调用responde.end()后执行NodeJS/connect中间件?

我想实现这样的目标:

var c = require('connect');
var app = c();

app.use("/api", function(req, res, next){
    console.log("request filter 1");
    next();
});

app.use("/api", function(req, res, next){
    console.log("request filter 2");
    next();
});

app.use("/api", function(req, res, next){
   console.log("request handler");
    res.end("hello");
    next();
});

app.use("/api", function(req, res, next){
    console.log("response post processor");
    next();
});
app.listen(3000);
Run Code Online (Sandbox Code Playgroud)

当我为地址卷曲时,我得到一个控制台的例外,抱怨在发送之后标题不会被打扰,这是公平的.只是我不接触响应对象.

/usr/bin/node app2.js
request filter 1
request filter 2
request handler
Error: Can't set headers after they are sent.
    at ServerResponse.OutgoingMessage.setHeader (http.js:644:11)
    at ServerResponse.res.setHeader (/home/zpace/node_modules/connect/lib/patch.js:59:22)
    at next (/home/zpace/node_modules/connect/lib/proto.js:153:13)
    at Object.handle (/home/zpace/WebstormProjects/untitled1/app2.js:25:5)
    at next (/home/zpace/node_modules/connect/lib/proto.js:190:15) …
Run Code Online (Sandbox Code Playgroud)

javascript architecture connect node.js

12
推荐指数
1
解决办法
6736
查看次数

标签 统计

architecture ×1

connect ×1

javascript ×1

node.js ×1