Я использую 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)"[object Object]" 2)"[object Object]" . . Я использую эту команду curl для передачи данных,
curl --data "What=Hello&world=name" http://127.0.0.1:8124
Я проверяю очередь Redis с помощью другого терминала с помощью этой команды,
>lrange XMLqueue 0 -1
Как мне это решить?
var p = JSON.stringify(post)
вместоvar p = JSON.encode(post)
. У меня была похожая проблема в прошлом. - person Tom Grant   schedule 03.07.2014