我正在尝试设置 Express.js 路由,但遇到了一个我不明白的问题。
我正在设置一条如下所示的包罗万象的路线:
app.get('/', function(req, res) {
console.log('CAUGHT HOME');
res.render('../public/index.ejs');
});
app.get('*', function(req, res) {
console.log('CAUGHT ALL');
res.render('../public/index.ejs');
});
在 Windows 7 上本地运行 Node.js,当我向任何 URL 发出请求时,会打印控制台日志消息,因此一切设置均正确。
但是,当我将脚本上传到 AWS EC2 并发出请求时,不会打印控制台消息。
我有另一条路线,可以在本地和 AWS 上完美运行,设置如下:
app.get('/login', function(req, res) {
res.render('../public/login.ejs', { message: req.flash('loginMessage') });
});
我不明白为什么路由确实有效,但不是为了包罗万象。 是否需要更改任何系统设置才能使全部功能正常工作?还是我做错了什么?
我非常感谢任何建议! TIA!
这是本地控制台输出的一个片段,其中一切都按预期工作:
CAUGHT HOME
GET / 304 25ms
CAUGHT ALL
GET /font-awesome/css/font-awesome.css 200 5ms - 2.32kb
CAUGHT ALL
GET /css/bootstrap.min.css 200 2ms - 2.32kb
CAUGHT ALL
GET /css/animate.css 200 1ms - 2.32kb
CAUGHT ALL
GET /css/style.css 200 1ms - 2.32kb
CAUGHT ALL
GET /js/jquery/jquery-2.1.1.min.js 200 6ms - 2.32kb
CAUGHT ALL
GET /js/plugins/jquery-ui/jquery-ui.js 200 2ms - 2.32kb
CAUGHT ALL
GET /js/bootstrap/bootstrap.min.js 200 1ms - 2.32kb
这是 AWS 上的控制台输出:
GET / 304 39ms
GET /font-awesome/css/font-awesome.css 304 111ms
GET /css/bootstrap.min.css 304 52ms
GET /js/plugins/jquery-ui/jquery-ui.js 304 50ms
GET /css/animate.css 304 51ms
GET /css/style.css 304 53ms
GET /js/jquery/jquery-2.1.1.min.js 304 58ms
GET /js/bootstrap/bootstrap.min.js 304 13ms
最佳答案
尝试这样:
app.route('/*')
.get(function (req, res) {
//
});
关于node.js - Express.js Catch All 路由不适用于 AWS EC2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30048405/