Express.js Catch所有路由都不适用于AWS EC2

时间:2015-05-05 08:57:24

标签: node.js express amazon-ec2 routing

我正在尝试设置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

2 个答案:

答案 0 :(得分:0)

尝试这样:

app.route('/*')
  .get(function (req, res) {
    // 
  });

答案 1 :(得分:0)

这个问题让我很困惑,因为有些路由工作正常,有些则没有。

我决定删除服务器上的所有文件并重新上传整个网站,这解决了这个问题。