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

时间:2014-05-12 10:52:34

标签: node.js express routes

我有一个应用程序,其中包含以下路由代码:

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

现在我必须将路由代码放在不同的文件中,所以我尝试使用this方法,但是可能是因为它使用的是express.Router()而不是< / p>

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

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

为什么app.getapp.postapp.delete等在app.js中使用express.Router()之后无效?

1 个答案:

答案 0 :(得分:26)

这是一个简单的例子:

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