我想使用2个玉文件创建2个页面。出于以下方式出了什么问题:
exports.index = function(req, res){
res.render('index', { title: 'Welcome' });
};
exports.room = function(req, res){
res.render('room', { title: 'Game' });
};
索引localhost:3000
有效。但是localhost:3000/room
给了我
Cannot GET /room
答案 0 :(得分:0)
您必须将路线添加到主app.js
文件
app.get('/room', routes.room);
对于很多页面,您可以执行类似
的操作var routes = ['blog', 'about', 'home', 'team', 'room', ...];
routes.forEach(function(item) {
exports[item] = function(req, res) {
res.render(item);
}
});
但是,如果你有很多单独的局部变量,这可能会变得混乱(你可以使用数组中的对象而不是字符串)。
最好的办法是将POST
和GET
关于/room
的请求放入room.js
并在主app.js
内提出要求。然后就可以像这样使用它了
var room = require('./routes/room');
app.get('/room', room.read);
app.post('/room', room.create);
app.get('/room/:id', room.getID);
app.get('/room/anything', room.anything);
// then continue with app.get('/team') for example
另请查看express github repo的route-separation示例。