【Node.js】表单post

作者: 德育处主任 | 来源:发表于2019-06-22 06:50 被阅读0次
微信订阅号:Rabbit_svip

postget 最大的区别是 post 不在url里传值。

所以后台处理 post 传过来的值,需要用另一种方法。

post 是通过事件的方式来接收客户端发过来的请求。

post 有两个事件是比较常用的。

  • req.on('data') : 每次发送的数据
  • req.on('end') : 数据发送完成

前端代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <form method="post" action="http://localhost:8100">
        <input type="text" name="userName">
        <input type="password" name="userPwd">
        <input type="submit" value="登录">
    </form>
</body>
</html>

前端代码和 get 那个例子差不多,只是把 get 改成 post

后端代码

const http = require('http');

const server = http.createServer((req, res) => {

    let postVal = "";

    // chunk 代表每次接收到的数据
    req.on("data", (chunk) => {
        postVal += chunk;
    })

    req.on("end", () => {
        console.log(postVal);
        res.end();
    })

})

server.listen(8100);

在浏览器输入 admin 和 123123

后端得到以下数据


微信订阅号:Rabbit_svip

是字符串格式的。

如果需要转成json格式,可以通过 querystring 这个系统提供的模块。

querystring模块

const http = require('http');
const querystring = require('querystring');

const server = http.createServer((req, res) => {

    let postVal = "";

    // chunk 代表每次接收到的数据
    req.on("data", (chunk) => {
        postVal += chunk;
    })

    req.on("end", () => {
        console.log( querystring.parse(postVal) );
        res.end();
    })

})

server.listen(8100);

最后在浏览器重新提交以下。
后台得到的结果:


微信订阅号:Rabbit_svip

相关文章

  • node.js 学习笔记04

    form 表单发送 post 请求,node.js 原生接收 post 请求 引入包之前,需要在当前文件夹下用命令...

  • 【Node.js】表单post

    post 和 get 最大的区别是 post 不在url里传值。 所以后台处理 post 传过来的值,需要用另一种...

  • koa处理post请求

    1. 获取post请求的步骤 解析上下文的ctx文原生node.js的对象rep 将post表单数据解析成quer...

  • Django获取传送数据

    Form表单传递数据(POST或GET,一般是POST) 普通数据form表单提交数据