我仍然对node.js很新,所以请耐心等待。
我试图提取POST数据,然后发送json作为响应,但我似乎无法从POST请求中提取数据,更糟糕的是我无法找到不使用Express发送json的人的语法。它一直告诉我res.json不是一个函数。
编辑:我发现了json部分的问题,我是一个转储。我终于记得我被告知的事情,json被发送成串。var http = require('http');
var qs = require("querystring");
server = http.createServer(function (req, res) {
try {
var body = "";
var post = qs.parse("");
if (req.method == "POST") {
res.writeHeader(200, {"Content-Type": "application/json"});
req.on("data", function (data) {
body += data;
console.log(data); //It gives something like <Buffer xx xx xx ...>
if (body.length > 1e6)
req.connection.destroy();
});
req.on("end", function () {
post = qs.parse(body);
console.log(post.test); //It gives "undefined"
});
res.end(JSON.stringify({ a: 1 }));
} catch(err) {
console.dir(err);
res.writeHeader(200, {"Content-Type": "text/plain"});
res.end("Hi hi");
}
});
server.listen(8000);
console.log("http start @8000");
有任何帮助吗?提前谢谢。
答案 0 :(得分:0)
解决了字符串的日期(即将缓冲区转换为字符串
)res.on('data', function(chunk) {
var textChunk = chunk.toString('utf8');
// console.log(textChunk); // will give you a stream of text from data
});
你可以将textChunk存储在ondata
处理程序之外,然后在需要时使用它(比如说再次向用户返回相关数据)