Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 解析Nodejs中的POST参数_Node.js - Fatal编程技术网

Node.js 解析Nodejs中的POST参数

Node.js 解析Nodejs中的POST参数,node.js,Node.js,我在一个小节点脚本中解析一个简单表单(不使用express或任何框架),所以我创建了一个函数来解析表单体 function postForm(req, res) { let body = ''; req.on('data', data => { body += data.toString(); }); req.on('end', () => { console.log(body); }); r

我在一个小节点脚本中解析一个简单表单(不使用express或任何框架),所以我创建了一个函数来解析表单体

function postForm(req, res) {

    let body = '';

    req.on('data', data => {
        body += data.toString();
    });

    req.on('end', () => {

        console.log(body);

    });

    res.write('ok');
    res.end();
}
但我确实一次获得了所有字段,例如username=sam&age=22

我知道在express中,我可以直接调用body.username或body.age,有没有一种简单的方法可以做到这一点

rant 我简直不敢相信在nodejs中解析一个简单的表单元素有多么过时。
在go中是一行(r.FormValue(“name”)),因此在php$\u POST[“name”])。我一定是做错了:)

节点作为一个名为
querystring
的模块,您可以使用它来解析表单数据。您还可以设置请求的编码,以便块已经是字符串

const querystring = require('querystring');

function postForm(req, res) {

    req.setEncoding('utf8');

    let body = '';

    req.on('data', data => {
        body += data;
    });

    req.on('end', () => {

        console.log(querystring.parse(body));

    });

    res.write('ok');
    res.end();
}

节点作为名为
querystring
的模块,可用于解析表单数据。您还可以设置请求的编码,以便块已经是字符串

const querystring = require('querystring');

function postForm(req, res) {

    req.setEncoding('utf8');

    let body = '';

    req.on('data', data => {
        body += data;
    });

    req.on('end', () => {

        console.log(querystring.parse(body));

    });

    res.write('ok');
    res.end();
}

这取决于您在邮件正文中发送的内容。如果您发送enctype=“application/x-www-form-urlencoded”

,但它无法接收文件

解析mime多部分编码这是一项更困难的任务

<form action="/action_page_binary.asp" method="post" enctype="multipart/form-data">
  First name: <input type="text" name="fname"><br>
  Last name: <input type="text" name="lname"><br>
  <input type="submit" value="Submit">
</form>

名字:
姓氏:
边界是随机字符串。通常是很多“-”然后是一些随机字符串

如果按它分割文本(最好不要分割,但要处理流,因为文件太大)

然后是标题,然后是两个输入,然后是内容。 内容编码取决于标题。 在标题中有文件名

我喜欢这个身体


另请参见:

这取决于您在帖子正文中发送的内容。如果您发送enctype=“application/x-www-form-urlencoded”

,但它无法接收文件

解析mime多部分编码这是一项更困难的任务

<form action="/action_page_binary.asp" method="post" enctype="multipart/form-data">
  First name: <input type="text" name="fname"><br>
  Last name: <input type="text" name="lname"><br>
  <input type="submit" value="Submit">
</form>

名字:
姓氏:
边界是随机字符串。通常是很多“-”然后是一些随机字符串

如果按它分割文本(最好不要分割,但要处理流,因为文件太大)

然后是标题,然后是两个输入,然后是内容。 内容编码取决于标题。 在标题中有文件名

我喜欢这个身体


另请参见:

可能是一份副本,可能是一份副本,感谢您的回复!对于我想要实现的目标来说,它可以很好地工作,即获取单个字段var jumbor=(querystring.parse(body));控制台日志(小丑);console.log(小丑用户名);控制台.log(小丑.age);它不像Go或PHP那样简单,但我会处理我得到的:)-使用ExpressThank更简单谢谢你的回复!对于我想要实现的目标来说,它可以很好地工作,即获取单个字段var jumbor=(querystring.parse(body));控制台日志(小丑);console.log(小丑用户名);控制台.log(小丑.age);它不像Go或PHP那样简单,但我将使用我得到的:)-使用express更容易