扫码关注官方订阅号
手册上写着是:
app.use([path], function) Use the given middleware function, with optional mount path, defaulting to "/".
但是不是很理解意思。这里的function 是在什么场合调用的?
小伙看你根骨奇佳,潜力无限,来学PHP伐。
http://www.html-js.com/article/1603 阅读这篇文章.
app.use 加载用于处理http請求的middleware(中间件),当一个请求来的时候,会依次被这些 middlewares处理。
执行的顺序是你定义的顺序,比如文档上的例子:
var logger = require('morgan'); app.use(logger()); app.use(express.static(__dirname + '/public')); app.use(function(req, res){ res.send('Hello'); });
这个就不会记录静态文件的日志,因为looger中间件在static中间件后面。
app.use(express.static(__dirname + '/public')); app.use(logger()); app.use(function(req, res){ res.send('Hello'); });
可以简单理解为过滤器
就是引入一个所谓的中间件,其实就是用来再实际请求发生之前hack req和res对象来实现一些功能,比如果最简单的logger就是在res的end事件上添加监听写入一条日志记录,express使用connect提供的中间件,列表见 这里
你也可以轻易实现自己的中间件,举个例子比如你总是需要连接mysql
app.use(function(req, res, next) { mysql.createClient('localhost:3306', function(err, db) { if (err) return next(err); req.db = db; next(); }) })
在以后的中间件里你就可以使用 req.db对象来查询数据库了。
尝试自己模拟写了个express的山寨框架,终于对app.use有了比较深刻的理解;Myexpress
就相当于一个中间件处理器,请求来了,让那些中间件先处理一遍
还是不太理解~
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
http://www.html-js.com/article/1603
阅读这篇文章.
app.use 加载用于处理http請求的middleware(中间件),当一个请求来的时候,会依次被这些 middlewares处理。
执行的顺序是你定义的顺序,比如文档上的例子:
这个就不会记录静态文件的日志,因为looger中间件在static中间件后面。
可以简单理解为过滤器
就是引入一个所谓的中间件,其实就是用来再实际请求发生之前hack req和res对象来实现一些功能,比如果最简单的logger就是在res的end事件上添加监听写入一条日志记录,express使用connect提供的中间件,列表见 这里
你也可以轻易实现自己的中间件,举个例子比如你总是需要连接mysql
在以后的中间件里你就可以使用 req.db对象来查询数据库了。
尝试自己模拟写了个express的山寨框架,终于对app.use有了比较深刻的理解;Myexpress
就相当于一个中间件处理器,请求来了,让那些中间件先处理一遍
还是不太理解~