express的中间件use,Router

    xiaoxiao2021-03-25  138

     

    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一定要是*或者/

     

     

     

     

     

    转载请注明原文地址: https://ju.6miu.com/read-8921.html

    最新回复(0)