"express.Router"和使用"app.get"的路由有什么区别?

XIM*_*MRX 28 routes node.js express

我有一个带有以下代码的应用程序:

var router = express.Router(); 
router.post('/routepath', function(req, res) {});
Run Code Online (Sandbox Code Playgroud)

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

app.post("/routepath", function (req, res) {});
Run Code Online (Sandbox Code Playgroud)

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

为什么app.get,app.post,app.delete,等,都没有工作在app.js使用后express.Router()在其中?

msc*_*dex 26

这是一个简单的例子:

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

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

module.exports = router;
Run Code Online (Sandbox Code Playgroud)
// main.js
var app = require('express')();

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

app.get('/', function(req, res) {
    res.send('Hello from the root path!');
});
Run Code Online (Sandbox Code Playgroud)

这里,app.use()Router实例安装在/routepath,以便添加到Router实例的任何路由都是相对的/routepath.

  • @RavishankarRajendran`require('express').Router()`!=`app.router` (4认同)