我使用curl将POST请求发送到我的node.js应用。然后处理POST请求并将其推送到Redis队列。 但是当我检查我的redis队列时,列表中的所有项目都显示为[object Object]。 这是我的代码,
var http = require('http');
var qs = require('querystring');
var redis = require('redis').createClient();
redis.lpush('XMLqueue','post');
console.log('Server Starting Now: ');
http.createServer(function (req, res) {
//res.writeHead(200, {'Content-Type': 'text/plain'});
//res.end('Hello World\n');
if(req.method == 'POST'){
var body="";
req.on('data', function(data){
body += data;
});
req.on('end',function(){
var post = qs.parse(body);
console.log(post);
//var p = post.toString();
var p = JSON.encode(post);
redis.lpush('XMLqueue',p);
});
}
});
仅发布'我推然离散地正确显示。 否则所有项目都显示为 1)" [对象]" 2)" [对象对象]" 。 。 我用这个curl命令传递数据,
curl --data "What=Hello&world=name" http://127.0.0.1:8124
我使用此命令使用另一个终端检查redis队列,
>lrange XMLqueue 0 -1
我该如何解决?
答案 0 :(得分:1)
Redis只接受一些输入结构。 所以我们需要将JSON转换为字符串。所以我们使用
var p=JSON.stringify(post)