如何在node.js中获取请求体参数

3

我刚开始学习Node.js编程,遇到了一些问题。

我需要获取请求参数,类似于这样:

response: --------------------------e2a4456320b2131c


sent
--------------------------e2a4456320b2131c
Content-Disposition: form-data; name="is_test"

true
--------------------------e2a4456320b2131c
Content-Disposition: form-data; name="success"

true
--------------------------e2a4456320b2131c--

如何获取所有这些参数:

is_testsuccess等等。

以下是我的代码:

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

var app = express();

app.use(bodyParser.json());

exports.helloWorld = functions.https.onRequest((request, response) => {
                            var body = "";
                            request.on('data', function (data) {
                                                  body += data;
                                              });
                            request.on('end', function() {
                                                console.log('response: ' + body);
                                            });
                        );

我知道我需要使用bodyParser,但是我该如何使用呢?这一点我不清楚。 - Sunny Shah
1
app.use(bodyParser.json()); 这不是 JSON,你试过其他选项了吗?比如原始数据、文本或 URL 编码? - Jaromanda X
1个回答

4
你需要配置路由器以处理请求。查看 Express 文档中的 hello world 示例:http://expressjs.com/en/starter/hello-world.html 此外,如果你要在请求体中发送数据,你需要使用 HTTP POST 方法。 示例:
const bodyParser = require('body-parser');
const express = require('express');
const app = express();

app.use(bodyParser.json());

app.post('/', function (req, res) {
  const body = req.body;
  /*Body logic here*/
  res.status(200).end();
})

app.listen(3000, function () {
  console.log('Example app listening on port 3000!');
})

我不明白你的意思。你发布的代码是不完整的,你能扩展它以显示整个应用程序初始化吗? - catacs
这里我准备了一个类似于你的应用程序,你可以将帖子数据发送为json或form-data:https://gist.github.com/catacs/fd01a482118c282b82ffeb01f418c535 - catacs

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接