web-dev-qa-db-ja.com

「express.Router」と「app.get」を使用したルーティングの違いは何ですか?

ルーティング用の次のコードを含むアプリがあります。

_var router = express.Router(); 
router.post('/routepath', function(req, res) {});
_

今度はルーティングコードを別のファイルに配置する必要があるので、 this アプローチを使用しようとしましたが、おそらくnotが機能していません。 express.Router()の代わりに、以下を使用します。

_app.post("/routepath", function (req, res) {});
_

express.Router()を使用してルーティングを別のファイルに配置するにはどうすればよいですか?

express.Router()を使用した後、_app.get_、_app.post_、_app.delete_などが_app.js_で機能しないのはなぜですか?

29
XIMRX

以下に簡単な例を示します。

_// myroutes.js
var router = require('express').Router();

router.get('/', function(req, res) {
    res.send('Hello from the custom router!');
});

module.exports = router;
_

_// main.js
var app = require('express')();

app.use('/routepath', require('./myroutes'));

app.get('/', function(req, res) {
    res.send('Hello from the root path!');
});
_

ここで、app.use()Routerインスタンスを_/routepath_にマウントしているため、Routerインスタンスに追加されたルートはすべて相対的です。 _/routepath_に変換します。

26
mscdex