Comments (8)
No, I just ran into this exact situation in my own app, and it's annoying. I'll fix it soon. Thanks for reporting.
from node-redis.
Shouldn't this behave just as an empty multi bulk returning an empty array?
from node-redis.
It's tricky, because JavaScript considers the empty object to be "truthy".
Now that I think about it though, returning null in this case will break people who do Object.keys(res). Hmm, hard to say which is best.
from node-redis.
HGETALL always returns a multi bulk with length >= 0 and error replies are given via the error
argument. This implies that you would be able to safely call:
if (result.length)
Right?
from node-redis.
Well, it won't return an error, just an empty set... so the only way to check if it exists is to do if (Object.keys(reply).length)
, or check if it has a known property.
from node-redis.
If we're trying to be very idiomatic, the current behaviour is best. If we want to be practical, I'd say either error should be non-null, or the reply should be null.
from node-redis.
I guess we should just endure the breakage and send back null for an empty reply. Calling Object.keys on an untested value is risky for exactly this reason.
from node-redis.
I finally went and landed this change. Sending back null is the less surprising thing, given than JavaScript treats an empty object as truthy.
Apologies to anybody that gets burned by the change in behavior.
from node-redis.
Related Issues (20)
- 3 socket writes instead of one?
- Cannot read properties of undefined (reading 'replicas') [calling "get"] HOT 1
- Add support for HSCAN [NOVALUES]
- Add command filter for CLIENT KILL to support maximum age via [MAXAGE] option
- Support XREAD, XREADGROUP reading from last message of stream
- Supporting unstable commands
- Does cluster mode support pipeline?
- Unable to use +/- inf at method: zAdd HOT 2
- Create "ensure" method
- quit vs disconnect - flipped behaviour or wrong documentation HOT 1
- isolationPoolOptions have terrible defaults
- createCluster clients don't handle on('error') correctly HOT 2
- "ClientClosedError: The client is closed" error in my TypeScript application redis usage
- Quit is not getting closed HOT 1
- Detect pub sub subscription status/connection on the cluster client?
- FT.AGGREGATE _ LOAD * is not supported
- Is there a read from option in redis-cluster? HOT 2
- Successfully connected to Redis server, but did not trigger connect, ready event callback HOT 1
- sRandMember seems to not support the count argument HOT 2
- Unable to connect to literal IPv6 addresses via the `url` option
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from node-redis.