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

使用子域的Node.js应用程序挂起,而不是抛出404错误,node.js,express,subdomain,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')(s

我正在使用“子域”模块创建我的网站的两个版本,“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页未找到”


有人能找出最后一条路线不起作用的原因吗?

你把
res.status
res.send

混淆了
res.status
res.send

你把
res.status
res.send

混淆了
res.status
res.send

,它不发送响应。您需要使用
res.end()
来结束响应,或者将
res.status()
替换为
res.send(404)
,它设置状态代码并在一次调用中结束响应。

,它不发送响应。您需要使用
res.end()
来结束响应,或者将
res.status()
替换为
res.send(404)
,它设置状态代码并在一次调用中结束响应。

,它不发送响应。您需要使用
res.end()
来结束响应,或者将
res.status()
替换为
res.send(404)
,它设置状态代码并在一次调用中结束响应。

,它不发送响应。您需要使用
res.end()
来结束响应,或者用
res.send(404)
替换您的
res.status()
,它设置状态代码并在一次调用中结束响应。

您介意解释一下区别吗?目前的答案有点简单。你介意解释一下区别吗?目前的答案有点简单。你介意解释一下区别吗?目前的答案有点简单。你介意解释一下区别吗?目前的答案有点简单。在较新版本的Express中,您可能会收到关于
res.send(400)
的“弃用”警告。请改用
res.sendStatus(400)
。在较新版本的Express中,您可能会收到有关
res.send(400)
的“不推荐”警告。请改用
res.sendStatus(400)
。在较新版本的Express中,您可能会收到有关
res.send(400)
的“不推荐”警告。请改用
res.sendStatus(400)
。在较新版本的Express中,您可能会收到有关
res.send(400)
的“不推荐”警告。改用
res.sendStatus(400)