[英]Reading requests body Nodejs
我正在運行此簡單的http node.js服務器:
var http = require('http');
http.createServer(function (req, res) {
}).listen(6000);
您能解釋一下我如何讀取傳入請求的正文,以便在控制台上對其進行可視化處理?
您可以將請求流通過管道發送到stdout:
var http = require('http');
http.createServer(function (req, res) {
req.pipe(process.stdout);
}).listen(6000);
更新:如果主體包含JSON,並且您想反序列化,則可以從流數據塊中構建一個字符串,並在其上使用JSON.parse()
(記住將其放在try / catch塊中或使用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]
類的東西-它已完全解析且可用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.