0

2つのjadeファイルを使用して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
4

1 に答える 1

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/roomroom.jsapp.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

また、エクスプレスgithubリポジトリのルート分離の例もご覧ください。

于 2013-01-29T16:08:40.983 に答える