Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Merge pull request #183 from DTrejo/master

How to correctly auth to server; what error to look for if you're doing it wrong; emit Error objects not string
  • Loading branch information...
commit a02e058df72f4a2a35fc3a23a077ef2a08f0cd8b 2 parents c0e1ac8 + cd5db44
@mranney mranney authored
Showing with 8 additions and 4 deletions.
  1. +5 −1 README.md
  2. +3 −3 index.js
View
6 README.md
@@ -186,7 +186,7 @@ be loading the database from disk. While loading, the server not respond to any
indicates whether the server is ready for more commands. When ready, `node_redis` emits a `ready` event.
Setting `no_ready_check` to `true` will inhibit this check.
-
+```js
var redis = require("redis"),
client = redis.createClient(null, null, {detect_buffers: true});
@@ -202,6 +202,7 @@ Setting `no_ready_check` to `true` will inhibit this check.
console.log(reply.toString()); // Will print `<Buffer 4f 4b>`
});
client.end();
+```
`createClient()` returns a `RedisClient` object that is named `client` in all of the examples here.
@@ -212,6 +213,9 @@ first command after connecting. This can be tricky to coordinate with reconnect
etc. To make this easier, `client.auth()` stashes `password` and will send it after each connection,
including reconnections. `callback` is invoked only once, after the response to the very first
`AUTH` command sent.
+NOTE: Your call to `client.auth()` should not be inside the ready handler. If
+you are doing this wrong, `client` will emit an error that looks
+something like this `Error: Ready check failed: ERR operation not permitted`.
## client.end()
View
6 index.js
@@ -160,11 +160,11 @@ RedisClient.prototype.do_auth = function () {
}, 2000); // TODO - magic number alert
return;
} else {
- return self.emit("error", "Auth error: " + err);
+ return self.emit("error", new Error("Auth error: " + err.message));
}
}
if (res.toString() !== "OK") {
- return self.emit("error", "Auth failed: " + res.toString());
+ return self.emit("error", new Error("Auth failed: " + res.toString()));
}
if (exports.debug_mode) {
console.log("Auth succeeded " + self.host + ":" + self.port + " id " + self.connection_id);
@@ -290,7 +290,7 @@ RedisClient.prototype.on_info_cmd = function (err, res) {
var self = this, obj = {}, lines, retry_time;
if (err) {
- return self.emit("error", "Ready check failed: " + err);
+ return self.emit("error", new Error("Ready check failed: " + err.message));
}
lines = res.toString().split("\r\n");
Please sign in to comment.
Something went wrong with that request. Please try again.