Node.js 向'表示未捕获请求/';

Node.js 向'表示未捕获请求/';,node.js,express,routing,Node.js,Express,Routing,我有一个相当奇怪的问题-不知何故,Express没有捕获我对根路径的请求 我的路由文件如下所示: 'use strict'; var errors = require('./components/errors'); var auth = require('./controllers/auth'); var ensureLoggedIn = require('connect-ensure-login').ensureLoggedIn; module.exports = function(app)

我有一个相当奇怪的问题-不知何故,Express没有捕获我对根路径的请求

我的路由文件如下所示:

'use strict';

var errors = require('./components/errors');
var auth = require('./controllers/auth');
var ensureLoggedIn = require('connect-ensure-login').ensureLoggedIn;
module.exports = function(app) {

  // Insert routes below

  // All undefined asset or api routes should return a 404
  app.route('/:url(api|auth|components|app|bower_components|assets)/*')
   .get(errors[404]);

  app.route('/login')
    .get(auth.login)
    .post(auth.loginUser);
  app.route('/logout')
    .get(auth.logout);
  // All other routes should redirect to the index.html
  app.route('/*')
    .get(ensureLoggedIn('/login'), function(req, res) {
      console.log("req to /");
      res.sendfile(app.get('appPath') + '/index.html');
    });

};
那么会发生什么:

  • 我请求“/”,它会直接将我发送到我的root用户,应用程序就会运行。除此之外:它不需要我登录,而且日志输出也不显示已发出任何请求

  • 如果我请求'/users'(角度路由),它会按预期将我重定向到'/login',然后继续其路径


知道是什么导致了这种行为吗?

您是否使用express公开了任何静态资产?如果您是,并且在公开资产后需要路由,则对“/”的请求只会登录到您的公用文件夹中,而不会执行任何操作

这有用吗?你能发布你的服务器.js吗


我之前遇到过这个问题,它让我发疯。

它似乎与Angular接管之前提供的“主页”的文件名有关

最初,文件名为namesindex.html,它似乎在默认情况下提示节点为其提供服务-如果没有路由干扰,这是预期行为。
将主文件重命名为application.html并更改服务资产后,一切正常,问题得到解决

但是我仍然不确定,为什么路由不会启动,索引会覆盖它