var express = require('express')var app = express()var router = express.Router() router.use(function (req, res, next) { if (!req.headers['x-auth']) return next('router') next() }) router.get('/', function (req, res) { res.send('hello, user!') }) app.use('/admin', router, function (req, res) { res.send('401') }) app.use('/', router) app.listen(3000)
这是express官方文档上的一个例子,
1、router.use挂载了一个中间件,用于检查请求头,由于没有指定路径和方法,所以请求所有路径和方法都会执行它。
2、我请求localhost:3000/的时候,没有加x-auth请求头,会输出一个错误的网页,加了请求头,会输出'hello, user!',这部分我可以理解。
3、但在在请求localhost:3000/admin的时候,没有加请求头会返回401,但是为什么加了请示头,会输出 'hello, user!',一个是请求'/',一个是 '/admin',这两个毫无关联呀???
4、使用 return next('router') 这个会返回到哪边呢?
森栏
相关分类