express的中间件use,Router

Express中一个非常核心的概念就是中间件(middleware)。在官方文档中,有这样一句话:
An Express application is essentially a series of middleware calls.
也就是说,一个Express应用,从本质上来说,就是一系列中间件的调用。那么,中间件到底是什么呢?其实,一个中间件,就是一个函数。通常情况下,一个中间件函数的形式如下:

function middlewareName(req, res, next) {
    // do something
}
如果是错误处理的中间件,形式如下:

function middlewareName(err, req, res, next) {
    // do something

}


app.use调用的是Router的实例_router.use,即Router的原型方法,跟router.use一样

router.use需要调用app.use('/foo', router);才会生效,

所以在express项目中,想要将路由分开写,可以如下

app.js

/***********/

var app = express();
var routes = require('./routes/test');
routes(app);


总路由

/*******/

test.js

module.exports = function (app) {
   app.get('/', function (req, res) {
        res.redirect('/index');
    });
    app.use('/users', require('./user'));
    app.use('/index', require('./index'));


};


首页

index.js

/*******

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

/* GET home page. */
router.get('/', function(req, res, next) {
  res.render('index', { title: 'Express' });
});

module.exports = router;

/********/

其他路由

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

/* GET users listing. */
router.get('*', function(req, res, next) {
  res.send('respond with a resource');
});

module.exports = router;


注意:在其他路由这里router.get('*',function(){}),url一定要是*或者/






猜你喜欢

转载自blog.csdn.net/sinat_31608641/article/details/60955010