身体语法分析器用什么来expression?
我不明白为什么我们需要在Express应用程序中使用body-parser
,因为我们可以在不使用body-parser
情况下获取数据。 它究竟做了什么,怎么做?
要处理Express.js第4版及更高版本中的HTTP POST请求,您需要安装名为body-parser的中间件模块。
body-parser提取传入请求stream的整个主体部分,并将其公开在req.body上。
中间件早些时候是Express.js的一部分,但现在必须单独安装。
这个body-parser模块分析使用HTTP POST请求提交的JSON,缓冲区,string和url编码数据。 使用NPM安装body-parser,如下所示。
npm install body-parser --save
认为这是一个老问题,但它可能会帮助某人,而不是使用bodyParser中间件,我们可以使用这些实用程序从expression 。
如果你想parsing端点中的json,使用express.json()
中间件。 如果您想要json和urlencoded端点,请为您的中间件使用[express.json(), express.urlencoded()]
。
如果您希望用户将file upload到端点,则可以使用express.multipart()
并确保清除所有已创build的临时文件。
它parsingHTTP请求体。 当你需要知道的不仅仅是你打的URL时,这通常是必要的,特别是在POST或者PUT PATCH HTTP请求的上下文中,你需要的信息包含在主体中。
基本上它是一个parsingJSON,纯文本或者只是返回一个原始的Buffer对象供你处理的中间件。
为了访问发布数据,我们必须使用body-parser
。 基本上什么是body-parser
,它允许expression阅读身体,然后parsing成Json
对象,我们可以理解。
这些都是方便的事情。
基本上,如果问题是“我们需要使用body-parser
吗? 答案是不'。 我们可以从客户请求中得到相同的信息,使用更加迂回的路线,这种路线一般不那么灵活,并且会增加我们为了获得相同信息而编写的代码量。
这就像问“我们需要用express
开始吗?”一样。 再次,答案是没有的,而且,再一次,真正的结果是,我们省下了编写更多代码来执行“内置”所expression的基本内容的麻烦。
在表面上, body-parser
使得以各种格式获取客户端请求中包含的信息变得更加容易,而不是让您捕获原始数据stream,找出信息的格式,更不用手动parsing信息可用的数据。