node-redis icon indicating copy to clipboard operation
node-redis copied to clipboard

Unexpected token E in JSON at position 0 error with json.get function

Open ziyaaktas opened this issue 1 year ago • 0 comments

I have a code like this,

function generateJsonPaths(ids) {
  const idsString = _.map(ids, id => `"${id}"`).join(',')
  return `$.orgs.[${idsString}]`
}
const redisMulti = redisClient.multi()
const path = generateJsonPaths(ids)
_.each(hashes, hash => redisMulti.json.get(hash, { path }))
const jsonCache = await redisMulti.exec()

When there is non existent id, I get an error as Unexpected token E in JSON at position 0, and the whole multi function fails. In the redis terminal though I could do something like this, json.get key $..id1 $..id2 and I get empty array for non existing values. Is there a way to replicate this value in this package?

Environment:

  • Node.js Version: 14.20
  • Redis Server Version: 6.2.6
  • Node Redis Version: 4.3.0
  • Platform: Mac OS 11.6.8

ziyaaktas avatar Sep 15 '22 08:09 ziyaaktas