我在node.js实战这本书,看到connect自带的中间件的这章的时候,想练习书中的代码时,发现这段代码自己 写总是报错,很纳闷,代码如下,很简短:
var connect = require(“connect”); var app = connect() .use(connect.query()) .use(function (req, res, next) { res.setHeader(“Content-Type”, “application/json”); res.end(JSON.stringify(req.query)); });
app.listen(3000); 总是报:TypeError: connect.query is not a function 我用的node版本是:v4.2.3,connect模块正确引用了,但是不明白原因,在网上看到一篇文章说是自从3.*版本以后connect不再提供中间件什么的,需要手动获取之类的,所获取的信息不多,请大神解答!
大神们呢???
就是拆分了。需要另外引用模块
npm install connect 就ok了
Some middleware previously included with Connect are no longer supported by the Connect/Express team, are replaced by an alternative module, or should be superseded by a better module. Use one of these alternatives instead:
- query
早先版本3.x集成querystring
一类的中间件,其实就是把url中的query部分解析出来,变成{key : value}
的形式挂载到request
对象上去了。以后遇到req.files
,req.body
等都是一样的原理,只不过用了不同的中间件来做了处理。中间件就是加工加工,或者做一些日志呀,监控呀~PS:楼主记得markdown格式化代码
@luicfer ,意思我需要require(‘query’),如果需要该模块的话,是这样吗?
@SinalVee ,我找到就是这段话,你还知道这方面更详细的信息吗?
@DevinXian ,刚学,听你说的明白了一些,但还有一些不太明朗,谢谢!
@JerrysShan 文档,官网上可以找到的呀~举个简单的例子,中间件body-parser
就是在每个请求来到服务器端时,解析请求携带的参数,然后方便下一步使用。如果请求类型是multi/form-data
类型的,使用multer
一类的进行请求提解析就比较方便了。典型的还有session处理等~中间件就是工具,替你做了某些工作而已,完全可以不要,不过那什么都得自理~
简单点讲就是你看的这本书已经远远地过期了。