身体解析器有什么用?

时间:2016-01-28 09:43:59

标签: node.js express

var express = require('express');
var app = express();
var bodyParser = require('body-parser');

// Create application/x-www-form-urlencoded parser
var urlencodedParser = bodyParser.urlencoded({ extended: false })

app.use(express.static('public'));

app.get('/index.htm', function (req, res) {
   res.sendFile( __dirname + "/" + "index.htm" );
})

app.post('/process_post', urlencodedParser, function (req, res) {

   // Prepare output in JSON format
   response = {
       first_name:req.body.first_name,
       last_name:req.body.last_name
   };
   console.log(response);
   res.end(JSON.stringify(response));
})

var server = app.listen(8081, function () {

  var host = server.address().address
  var port = server.address().port

  console.log("Example app listening at http://%s:%s", host, port)

})
  1. var bodyParser = require('body-parser');
  2. var urlencodedParser = bodyParser.urlencoded({ extended: false })

  3. app.post('/process_post', urlencodedParser, function (req, res)

  4. 任何人都可以解释上面三行代码的用途以及正文解析器的用途吗?

3 个答案:

答案 0 :(得分:2)

  1. bodyParser将使用请求中的已解析正文填充req.body属性。使用1号线,您只需通过要求即可在课堂上使用。

  2. 返回仅解析urlencoded主体的中间件。此解析器仅接受正文的UTF-8编码,并支持gzip和deflate编码的自动膨胀。扩展选项允许选择使用查询字符串库(假设时)或qs库(当为真时)解析URL编码数据。 "扩展"语法允许将富对象和数组编码为URL编码格式,从而允许使用URL编码的类似JSON的体验。

  3. 使用最后一行,您只是说您已定义的此路线将使用您已定义的bodyparser

  4. 我从https://github.com/expressjs/body-parser复制的大部分内容。所以可以看一下这个链接

答案 1 :(得分:1)

  1. 假设您有POST路由处理程序,它接受一些参数并相应地工作。现在您从前端应用程序或移动应用程序发出请求。您将一些参数传递给此请求。现在Parser所做的是它从请求中提取参数,解析它并使其可用req.body并且您可以按其特定名称访问参数
  2. 这是一个中间件,它解析UTF-8编码的主体。它有助于解析URL编码数据,如JSON个对象
  3. 这是一种定义特定路线将使用urlEncodedParser
  4. 的方法

答案 2 :(得分:1)

您可以简单地使用

const express = require('express')
const app = express();
app.use(express.urlencoded({extended: false}))
app.listen(//your port)

//就这样