Express JS 为什么body-parser显示deprecated

775 阅读1分钟

Node/Express

许多已经在使用Node/Express框架的人已经习惯于安装body-parser这种中间件,以便我们能够读取传入的JSON对象的“body”。body-parser以前不是Express框架的一部分,但是从Express版本4.16+开始,默认Express软件包中包含了他们自己的body-parser实现,因此无需再额外安装body-parser。

目的

这篇文章旨在使您在使用Express 4.16+(或更高版本)时停止运行以下命令,除非您绝对需要它(见文末):

npm install --save body-parser

您可能已经在代码中添加了一行,如下所示:

app.use(bodyparser.json()); //使用body-parser package

如果您使用的是Express 4.16+,则现在可以将该行替换为:

app.use(express.json()); //用于解析JSON正文

这应该不会在应用中引入任何重大的更改,因为express.json()中的代码是基于bodyparser.json()的。

如果您的环境中也有以下代码:

app.use(bodyParser.urlencoded({extended:true}));

您可以将其替换为:

app.use(express.urlencoded()); //解析URL编码的主体

结论

如果您使用的是Express 4.16+,则不需要在程序中安装body-parser软件包。有许多教程包括body-parser的安装,因为它们的发布日期早于Express 4.16的发布。

最后的警告提示:

在某些非常特殊的情况下,可能仍然需要body-parser,但是在大多数用例中,Express自身对于body-parser的实现已经足够使用了(请参阅github上的文档以获取更多信息)

原文链接