Node-redis: Erreur avec node-redis: obsolète: la commande SET contient un argument de type Object

Créé le 9 mai 2017  ·  3Commentaires  ·  Source: NodeRedis/node-redis

Également publié sur Stack Overflow: http://stackoverflow.com/questions/43858414/error-with-node-redis-deprecated-the-set-command-contains-a-argument-of-type-o

J'utilise le module connect-redis-crypto (https://github.com/jas-/connect-redis-crypto) qui est conçu pour crypter les données de session redis au-dessus de connect-redis (https: // github. com / tj / connect-redis). Ma version redis est 3.2.8.

Je rencontre l'erreur node-redis: obsolète: la commande SET contient un argument de type Object. Sur la base du message d'erreur plus large, il semble provenir d'une tentative d'analyse de la chaîne [objet objet] alors qu'il ne s'agit pas d'une chaîne JSON. J'ai mis des objets imbriqués qui contiennent des informations utilisateur sur req.session qui sont directement stockées (et idéalement cryptées) dans redis.

À partir de certaines sources, j'ai appris que les objets imbriqués dans Redis ne sont pas autorisés, ce qui pourrait provoquer cette erreur, mais je pense que cette bibliothèque stocke les données au format JSON pour permettre les objets imbriqués. connect-redis fonctionne bien pour moi, mais lorsque cette bibliothèque connect-redis-crypto tente d'analyser JSON des données chiffrées, elle me renvoie cette erreur particulière.

J'apprécierai vraiment votre aide!

node_redis: Deprecated: The SET command contains a argument of type Object. This is converted to "[object Object]" by using .toString() now and will return an error from v.3.0 on. Please handle this in your code to make sure everything works as you intended it to. 8 May 18:24:48 - ---NEW REQUEST--- REQUEST : GET /api/somePath/client QUERY : {} BODY : {} data [object Object] err SyntaxError: Unexpected token o in JSON at position 1 at JSON.parse (<anonymous>) at Command.callback (/Users/Documents/web-AOT/server/node_modules/connect-redis-crypto/lib/connect-redis.js:262:35) at normal_reply (/Users/Documents/web-AOT/server/node_modules/redis/index.js:721:21) at RedisClient.return_reply (/Users/Documents/web-AOT/server/node_modules/redis/index.js:819:9) at JavascriptRedisParser.returnReply (/Users/Documents/web-AOT/server/node_modules/redis/index.js:192:18) at JavascriptRedisParser.execute (/Users/Documents/web-AOT/server/node_modules/redis-parser/lib/parser.js:560:12) at Socket.<anonymous> (/Users/Documents/web-AOT/server/node_modules/redis/index.js:274:27) at emitOne (events.js:96:13) at Socket.emit (events.js:189:7) at readableAddChunk (_stream_readable.js:176:18) at Socket.Readable.push (_stream_readable.js:134:10) at TCP.onread (net.js:551:20)

question

Commentaire le plus utile

node_redis ne stringifie pas un objet dans le cas où un tel est fourni. La raison en est qu'il ne saurait pas quand analyser la chaîne et quand ne pas le faire.

Par conséquent, vous avez réellement économisé [object Object] dans Redis, comme l'indique l'avertissement. Et vous rencontrez l'erreur d'analyse car [object Object] n'est pas un JSON valide. Veuillez donc stringify votre objet avant de le passer à node_redis.

Tous les 3 commentaires

node_redis ne stringifie pas un objet dans le cas où un tel est fourni. La raison en est qu'il ne saurait pas quand analyser la chaîne et quand ne pas le faire.

Par conséquent, vous avez réellement économisé [object Object] dans Redis, comme l'indique l'avertissement. Et vous rencontrez l'erreur d'analyse car [object Object] n'est pas un JSON valide. Veuillez donc stringify votre objet avant de le passer à node_redis.

Utilisez: client.set ('clé', JSON.stringify ({exemple: {champ: 'test', champ1: 333}, champ: 123}, () => {});
client.get ('clé', (err, données) => {
console.log (JSON.parse (données);
});

est-il possible d'avoir un rappel sur cet avertissement? il est toujours difficile de trouver la cause de ces avertissements sur les grands projets.

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

betimer picture betimer  ·  5Commentaires

adamgajzlerowicz picture adamgajzlerowicz  ·  4Commentaires

yuany picture yuany  ·  4Commentaires

Mickael-van-der-Beek picture Mickael-van-der-Beek  ·  6Commentaires

gpascale picture gpascale  ·  4Commentaires