express - Express 4.0 中的路由器与应用程序

标签 express router

我正在学习express 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更简单。有人能解释一下它们之间有什么区别吗?

最佳答案

它允许模块化。很多人都有一个路由文件夹,他们将所有路由处理程序保存在其中。然后在他们的 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;

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;

关于express - Express 4.0 中的路由器与应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36733245/

相关文章:

express - 使用 Express 的 Connect-Redis 将 session 存储在远程 Redis 服务器上

reactjs - 用 jest enzyme 测试 react router v4

express - 创建函数中枚举数据类型的问题

node.js - Express无法加载索引

build - 如何为 tp-link 构建自己的固件?

tcp - 在winsock 2中,当对等方重置TCP连接时,如何避免数据丢失?

javascript - react 路由器升级与路由器冲突

javascript - 用铁路由器 meteor 做路线

node.js - 在Express中使用多个MongoDB查询进行异步/等待

node.js - 如何更新警告已弃用