路由器与快递4.0中的app

时间:2016-04-20 03:22:33

标签: express router

我正在学习快速js 4.0并用它构建紧凑的CRUD REST API Web应用程序。在本教程中,它显示了两种方式;使用应用程序和使用路由器。

//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')
  });

对我来说,我觉得它们的工作原理相同,但我不知道为什么人们使用router,我认为使用app更简单。谁能解释一下它们之间有什么区别?

1 个答案:

答案 0 :(得分:4)

它允许模块化。很多人都有一个路径文件夹,他们保留所有路由处理程序。然后在他们的app.js文件中,他们只是做app.use(<prefix>, <routes>);在他们require他们的路由器之后。它可以使您的文件更小,更有条理。

示例:

<强> 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;

<强>路由/ 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;

<强>路由/ 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;