使用子域的Node.js应用程序挂起,而不是抛出404错误
我正在使用“子域”模块创建我的网站的两个版本,“www”或当前版本,“fa14”或存档版本使用子域的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
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)
。