我是使用express.js创建网络应用的node.js开发人员。 到现在为止,我的问题是:
每当我在我的计算机上创建一个应用程序时,npm安装它的东西并运行它(使用节点app.js和nodemon)我在控制台中收到此消息:
connect.multipart() will be removed in connect 3.0
visit https://github.com/senchalabs/connect/wiki/Connect-3.0 for alternatives
connect.limit() will be removed in connect 3.0
Express server listening on port 3000
该应用程序有效,没关系。但是当我克隆在其他计算机上创建的应用程序时,我没有收到该消息,所以我想我的计算机中有一些过时的东西。
我去了邮件中提到的网站并确认了我的推测。这是一个弃用警告。但是,我已更新节点和npm并全局表达,但我仍然得到了说明。
我的问题是,因此:我不知道我需要更新什么才能摆脱弃用说明,因为它们吓坏了我。
我希望有人可以帮助我。 非常感谢。
答案 0 :(得分:170)
这是一个警告,一旦Express更新使用Connect 3.0就会消失 - 作为临时修复,请按照https://github.com/senchalabs/connect/wiki/Connect-3.0顶部的说明操作。具体来说,在你的应用中找到这一行:
app.use(express.bodyParser());
并将其替换为以下内容(这是bodyParser
将在3.0中的内容):
app.use(express.json());
app.use(express.urlencoded());
答案 1 :(得分:60)
我对此弃用通知负责。你读过维基吗? https://github.com/senchalabs/connect/wiki/Connect-3.0
第1步:直接使用每个解析器而不是app.use(express.bodyParser());
app.use(express.json());
app.use(express.urlencoded());
步骤2:使用不同的多部分解析器,例如:connect-multiparty可以使用
app.use(require('connect-multiparty')())
因为节点0.12需要一段时间才被释放,所以连接3和express 4的工作还没有开始。没有什么可以更新的。
答案 2 :(得分:1)
因为express只是一个连接的包装器,我建议直接使用connect。
所以代替:
app.use(express.bodyParser());
使用:
connect = require('connect');
app.use(connect.json());
app.use(connect.urlencoded());