Node.js 向'表示未捕获请求/';
我有一个相当奇怪的问题-不知何故,Express没有捕获我对根路径的请求 我的路由文件如下所示: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)
'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并更改服务资产后,一切正常,问题得到解决 但是我仍然不确定,为什么路由不会启动,索引会覆盖它