Express.js从index.js文件的基本路由

时间:2013-01-29 12:46:43

标签: routes express

我想使用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

1 个答案:

答案 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);
  }
});

但是,如果你有很多单独的局部变量,这可能会变得混乱(你可以使用数组中的对象而不是字符串)。

最好的办法是将POSTGET关于/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示例。