我刚刚开始,我在这里有一个准系统应用程序,其中有路径文件./routes/index.js。无法使用Express处理路线
当我浏览到http://localhost:3000/index例如index.js被击中,但没有路线匹配,程序只是直接通过“return router;”。如果我浏览到http://localhost:3000/我再次得到相同的。
所有的浏览器都会考虑一下,然后给我一个ERR_CONNECTION_RESET。
app.js
var express = require('express');
var logger = require('morgan');
var bodyParser = require('body-parser');
var mongoose = require('mongoose');
var flash = require('connect-flash');
mongoose.connect('mongodb://localhost/blah');
var app = express();
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(flash());
app.use(require('./routes/index'));
module.exports = app;
index.js
var express = require('express');
var router = express.Router();
function authorize(req, res, next) {
if (true) {
next()
} else {
res.status(403).send('Forbidden')
}
}
module.exports = function(){
router.get('/index', function(req, res) {
res.send('index');
});
router.get('/hello/:name', function(req, res) {
res.send('hello ' + req.params.name + '!');
});
router.get('/', function(req, res) {
res.send('root');
});
return router;
}
我使用Webstorm所以我相信这是在某种程度上有线(当我启动它时,控制台显示“服务器在端口3000上侦听”)。我可以看到服务器收到的请求。当调试程序只是直接返回路由器(绕过router.gets) – millarnui
'router.get()'操作只是注册路由处理程序。它应该只执行它们,然后在服务器启动时返回,因为启动时无需执行任何操作,只需注册要处理的路由即可。至于webStorm,我已经对你展示的代码进行了评论。我想你是说有更多的代码。也许其他代码也是你问题的一部分。没有看到所有相关的东西我们都不知道。 – jfriend00