gpt4 book ai didi

node.js - Nodejs 读取请求体

转载 作者:太空宇宙 更新时间:2023-11-03 23:25:53 25 4
gpt4 key购买 nike

我正在运行这个简单的 http node.js 服务器:

var http = require('http');

http.createServer(function (req, res) {

}).listen(6000);

您能否解释一下,如何读取传入请求的正文,以便在控制台上将其可视化?

最佳答案

您可以将请求流传输到标准输出:

var http = require('http');

http.createServer(function (req, res) {
req.pipe(process.stdout);
}).listen(6000);

更新:如果正文包含 JSON 并且您想要反序列化它,那么您可以从流数据 block 构建一个字符串并使用 JSON.parse() (记住将其放在 try/catch block 中或使用 tryjson )或者您可以使用经过测试的解决方案 - 因为如果您想解析 JSON 正文,那么我怀疑您可能需要对此执行更多操作。

Express 和 body-parser 的示例:

const express = require('express');
const bodyParser = require('body-parser');
const app = express();
app.use(bodyParser.json());
app.use((req, res) => {
// req.body is deserialized body:
console.log(req.body);
});
app.listen(6000);

或者使用旧语法:

var express = require('express');
var bodyParser = require('body-parser');
var app = express();
app.use(bodyParser.json());
app.use(function (req, res) {
// req.body is deserialized body:
console.log(req.body);
});
app.listen(6000);

你可以像这样使用curl来测试它:

curl -X POST -H 'Content-type: application/json' -d '{"a":1,"b":2}' localhost:6000

它打印:

{ a: 1, b: 2 }

您可以看到它是通过对象键周围缺少引号来解析的。

当然,您可以使用 req.body.someArray[3] 等 - 它已完全解析且可用。

关于node.js - Nodejs 读取请求体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44394650/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com