使用子域的Node.js应用程序挂起而不是抛出404错误

时间:2014-10-12 00:46:24

标签: node.js express subdomain

我正在使用'子域名'模块创建我的网站的两个版本,' www'或当前版本,' fa14'或存档版本。

var express = require('express');
var compression = require('compression');

var app = express();
app.use(compression());

var subdomainOptions = {
    base: 'localhost',
};
app.use(require('subdomain')(subdomainOptions));

app.use('/subdomain/fa14/', express.static(__dirname + '/fa14'));
app.use('/subdomain/www/', express.static(__dirname + '/www'));


app.use(function(req, res) {
    res.status('404: Page not found', 404);
});

app.listen(8888);

当访问www.localhost或fa14.localhost时,应用程序的工作方式完全符合预期,但尝试访问" www.localhost / INVALIDURL"或" fa14.localhost / INVALIDURL"或任何其他应该404的路径,连接只是挂起。它应该返回" 404页面未找到"

有人能弄明白为什么最后一条路线不起作用吗?

2 个答案:

答案 0 :(得分:3)

res.status() only sets the status,它不会发送回复。您需要使用res.end()来结束回复或将res.status()替换为res.send(404),其中设置状态代码并且在一次通话中结束响应。

答案 1 :(得分:0)

您已将res.statusres.send混淆。