app.js
var express = require('express'),
dogs = require('./routes/dogs'),
cats = require('./routes/cats'),
birds = require('./routes/birds');
var app = express();
app.use('/dogs', dogs);
app.use('/cats', cats);
app.use('/birds', birds);
app.listen(3000);
dogs.js
var express = require('express');
var router = express.Router();
router.get('/', function(req, res) {
res.send('GET handler for /dogs route.');
});
router.post('/', function(req, res) {
res.send('POST handler for /dogs route.');
});
module.exports = router;
When var app = express()
被调用时,会返回一个app对象。将此视为main app.
When var router = express.Router()
被称为,略有不同mini app被返回。背后的想法mini app是应用程序中的每条路线都可能变得非常复杂,并且将所有代码移动到单独的文件中会让您受益匪浅。每个文件的路由器变成mini app,其结构与main app.
在上面的例子中,代码为/dogs路线已移至其自己的文件中,因此不会弄乱main app。代码为/cats and /birds在他们自己的文件中将具有类似的结构。通过将此代码分成三个迷你应用程序,您可以单独处理每个逻辑,而不用担心它会如何影响其他两个。
如果您有与所有三个路由相关的代码(中间件),您可以将其放在main app, 之前app.use(...)
来电。如果您的代码(中间件)仅与其中一个路由相关,则可以将其仅放入该路由的文件中。