J'utilise curl pour envoyer des requêtes POST à mon application node.js. La demande POST est ensuite traitée et transmise à une file d'attente Redis. Mais quand je vérifie ma file d'attente Redis, tous les éléments de la liste sont affichés en tant que [Object Object]. Voici mon code,La file d'attente Redis stocke les éléments dans la liste en tant que [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);
});
}
});
seulement 'post' que je pousse est correctement affichée discrètement. Sinon, tous les éléments sont affichés sous la forme 1) "[objet objet]" 2) "[objet objet]" . . J'utilise cette commande boucle pour transmettre des données,
curl --data "What=Hello&world=name" http://127.0.0.1:8124
Je vérifie la file d'attente à l'aide d'un autre terminal Redis avec cette commande,
>lrange XMLqueue 0 -1
Comment puis-je le résoudre?
Essayez 'var p = JSON.stringify (post)' au lieu de 'var p = JSON.encode (post)'. J'ai eu un problème similaire dans le passé. –
Oui, c'est seulement! –