router vs app in express 4.0

亡梦爱人 提交于 2019-12-23 22:44:29

问题


I am learning express js 4.0 and building compact CRUD REST API web application with it. In the tutorial, it shows two ways; using app and using router.

//using router
  var router = express.Router();
  router.get('/', function(req,res){
    res.send('hello, world')
  });

//using app
  app.get('/', function(req,res){
   res.send('hello, world')
  });

To me, I feel they work same but I don't know why people use router, I think using app is more simple. Can anybody explain what is difference between them?


回答1:


It allows for modularity. A lot of people have a routes folder that they keep all their route handlers in. And then in their app.js file, they just do something like app.use(<prefix>, <routes>); after they require their router. It keeps your files smaller and more organized.

Example:

app.js

var express = require('express');
var rootRoutes = require('./routes/index');
var userRoutes = require('./routes/user');

var app = express();

app.use('/', rootRoutes);
app.use('/user', userRoutes);

module.exports = app;

routes/index.js

var express = require('express');
var router = express.Router();

router.get('/', function(req, res) {
  res.render('index.jade');
});

router.get('/about', function(req, res) {
  res.render('about.jade');
});

module.exports = router;

routes/user.js

var express = require('express');
var router = express.Router();

router.get('/:name', function(req, res) {
  var userName = req.params.name;
  res.render('user.jade', {
    userName: userName
  });
});

module.exports = router;


来源:https://stackoverflow.com/questions/36733245/router-vs-app-in-express-4-0

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!