Node.js router()使用混乱

时间:2015-11-28 10:41:28

标签: javascript node.js mean-stack

为什么我们需要使用例如var route = Router();,因为默认情况下下面的简单示例表示已经充分使用路由:

var express = require('express'),
app = express();
app.get('/login',function(req,res,next){
//..something
});

1 个答案:

答案 0 :(得分:0)

express.Router类可用于创建模块化可安装路由处理程序。 Router实例是一个完整的中间件和路由系统;因此,它通常被称为“迷你app”。

以下示例将路由器创建为模块,在其中加载中间件,定义一些路由,并将其安装在主应用程序的路径上。

在app目录中创建一个名为birds.js的路由器文件,其中包含以下内容:

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

// middleware specific to this router
router.use(function timeLog(req, res, next) {
  console.log('Time: ', Date.now());
  next();
});
// define the home page route
router.get('/', function(req, res) {
  res.send('Birds home page');
});
// define the about route
router.get('/about', function(req, res) {
  res.send('About birds');
});

module.exports = router;

然后,在应用程序中加载路由器模块:

var birds = require('./birds');
...
app.use('/birds', birds);

应用程序现在可以处理对/ birds和/ birds / about的请求,同时调用特定于路径的timeLog中间件。