74

我是使用 express.js 创建 Web 应用程序的 node.js 开发人员。到目前为止,我的问题是:

每当我在我的计算机上创建一个应用程序时,npm 安装它的东西并运行它(使用 node 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

该应用程序有效,这很好。但是当我克隆在其他计算机上创建的应用程序时,我没有收到该消息,所以我想我的计算机中有一些过时的东西。

我去了消息中提到的网站并确认了我的猜测。这是一个弃用警告。但是,我已经更新了 node 和 npm 以及 global express,但我仍然收到了注释。

因此,我的问题是:我不知道我需要更新什么才能摆脱弃用说明,因为它们吓坏了我。

我希望有一个人可以帮助我。非常感谢。

4

3 回答 3

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());
于 2013-10-26T21:17:20.473 回答
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')())

connect 3 和 express 4 的工作尚未开始,因为节点 0.12 需要一段时间才能发布。还没有什么可更新的。

于 2013-12-16T11:34:50.047 回答
1

由于 express 只是连接的包装器,我建议直接使用连接。

所以而不是: app.use(express.bodyParser());

利用:

connect = require('connect');
app.use(connect.json());
app.use(connect.urlencoded());
于 2014-03-06T23:32:14.233 回答