【翻译】Node.js 教程 —— POST 请求

2019-02-21  本文已影响25人  kyuan
Post 请求

这节课讨论如何处理 POST 请求,POST 是一种请求方式,你可能已经听过很多次,基本而言是要求服务端接收或者存储请求体里带上的数据。

常用如在网页上提交表单,我们不需要在 url 上使用查询字符串的方式将数据带过去,而是在请求体里。因此跟 get 请求里的查询字符串会有点差别

上节课,我们通过查询字符串的方式将请求带过来的数据放到 ejs 模板里,这节课来处理这个表单提交后在服务端如何获取表单数据的操作。

'contact.ejs'
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>contact</title>
</head>
<body>
    <form action="/contact" method="post">
      <label>
        Person
        <input name="person" type="text" value="<%= qs.person%>">
      </label>
      <label>
        department
        <input name="department" type="text" value="<%= qs.department%>">
      </label>
    </form>
</body>
</html>
npm install body-parser
'app.js'
var bodyParser = require('body-parser');

// 请求体的数据将会通过 bodyParser urlencode 方法解析
var urlencodedParser = bodyParser.urlencoded({ extended: false });
'app.js'
// POST /contact 获取 urlencode 消息
app.post('/contact', urlencodedParser, function (req, res) {
  res.render('contact-success', {
      data: req.body
  });
})
'contact.ejs'
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Success</title>
</head>
<body>
    <p>
        You contact <%= data.person %> in <%= data.department %>
    </p>
</body>
</html>
上一篇 下一篇

猜你喜欢

热点阅读