“express.Router”和使用“app.get”的路由之间有什么区别?

我有一个应用程序以下代码路由:

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

现在我必须将路由代码放在不同的文件中,所以我试图使用这种方法,但是它工作,也许是因为它不使用express.Router()而是使用:

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

如何使用express.Router()将路由放在不同的文件中?

为什么app.getapp.postapp.delete等等,在使用express.Router()之后在app.js不起作用?

这是一个简单的例子:

 // 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