我正在尝试设置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
答案 0 :(得分:0)
尝试这样:
app.route('/*')
.get(function (req, res) {
//
});
答案 1 :(得分:0)
这个问题让我很困惑,因为有些路由工作正常,有些则没有。
我决定删除服务器上的所有文件并重新上传整个网站,这解决了这个问题。