0

以下代码没有发回响应,任何想法为什么?

var express = require('express'),
    app1 = express(),
    app2 = express();

app1.use(function(req, res, next) {
    app2.emit('request', req, res);
});

app2.get('/', function(req, res) {
    res.send("hi from app2");
});

app1.listen(80);
4

1 回答 1

1

Express 应用程序(返回的东西express())不是 HTTP Server;它不发出或消耗request事件。

它实际上是一个请求处理函数——它是你附加到一个Server'srequest事件的东西。(这在您调用 时在内部完成app.listen():创建一个新的 httpServer并将应用程序附加到它的request事件。)

所以你需要做的只是调用处理函数:

var express = require('express'),
    app1 = express(),
    app2 = express();

app1.use(function(req, res, next) {
    app2(req, res);
});

app2.get('/', function(req, res) {
    res.send("hi from app2");
});

app1.listen(80);
于 2013-09-04T19:31:34.583 回答