Express 4.0中的路由器与应用程序 [英] router vs app in express 4.0

查看:72
本文介绍了Express 4.0中的路由器与应用程序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

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

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

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?

推荐答案

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

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.

示例:

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 4.0中的路由器与应用程序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆