不推荐使用正文解析器

Posted

技术标签:

【中文标题】不推荐使用正文解析器【英文标题】:Body Parser Deprecated 【发布时间】:2021-06-07 10:12:28 【问题描述】:

我目前正在学习 node 和 express。但是当我需要并使用 body-parser 时,我的代码编辑器(VS Code)说它已被弃用。我该如何处理?我将链接我的编辑器的图像。

【问题讨论】:

这能回答你的问题吗? bodyParser is deprecated express 4 其实我之前尝试过搜索这个。我找到了这个答案,但对我没有帮助。 见this answer 【参考方案1】:

如果您面临“bodyParser”,则不推荐使用。

去做

app.use(express.urlencoded(extended: true)); 
app.use(express.json());

注意:如果您使用的是4.16.0later express 版本。

【讨论】:

【参考方案2】:

body 解析器包已弃用。如果您使用的是最新版本的 express,则无需安装 body-parser 包。

可以直接使用

app.use(express.urlencoded(extended:true);

【讨论】:

【参考方案3】:

现在将正文解析器添加到 Express。你可以像下面这样使用它:

app.use(express.json());

您可以将此中间件添加到代码中,然后就可以使用 json 方法。

【讨论】:

【参考方案4】:

不要使用正文解析器

body 解析现在内置于 express 所以,简单地做

app.use(express.json()) //For JSON requests
app.use(express.urlencoded(extended: true));

直接来自快递

你可以使用npm uninstall body-parser卸载body-parser

然后就可以使用req.body获取请求的POST内容了

app.post("/yourpath", (req, res)=>

    var postData = req.body;

    //Or like this, for string JSON body

    var postData = JSON.parse(req.body);
);

【讨论】:

以上是关于不推荐使用正文解析器的主要内容,如果未能解决你的问题,请参考以下文章

带有自定义标头的 Express 正文解析器

如何在快速路由器中使用正文解析器?

正文解析器节点模块返回“已弃用”消息[重复]

Beautiful Soup常见的解析器

Java的Javascript解析器[关闭]

NSJSONSerialization 与基于流的解析器