2

これが私のコードです:

var express = require("express"),
    app = express(),
    server = require("http").createServer(app),
    io = require("socket.io").listen(server),
    redis = require("redis"),
    env = {PORT: process.env.PORT || 8080, IP: process.env.IP || "localhost"};

client = redis.createClient(env.PORT , env.IP);
client.on("error", function(err) {
    console.log(err);
});

server.listen(env.PORT);
console.log("Server started @ " + env.IP + ":" + env.PORT);

実行しようとした後、コンソールに次のメッセージが表示されました。

Running Node Process
Your code is running at 'http://modified.address.c9.io'.
Important: use 'process.env.PORT' as the port and 'process.env.IP' as the host in your scripts!
info: socket.io started
Server started @ modified.ip.address.1:8080
[Error: Auth error: undefined]

接続を確立してみましたが、IPとPORTに完全に接続されています。ただし、エラー[Error: Auth error: undefined]が表示され、そこで停止します。エラー、使用した IDE のサポートを Google で検索しましたが、驚くべきことに、問題へのリンクが 7 つしかありません。ですから、それは私の知識の穴かもしれませんし、それを解決するために私が知らないことであり、実際にはまだ問題ではないと思います. それらの Google の結果から引き出すことができたのはclient.auth(pass)、作成した直後に使用する必要がある (確信が持てなかった) ことだけでした。しかし、どこでパスワードを見つける必要がありますか? インストールしたときnpm install redis、何も構成せず、パスワードを設定するように言われませんでした。だから私は行き詰まりに到達します。

Cloud9 IDE (c9.io) を使用し、上記のコードに示されているモジュールを使用しています。

----敬具、----ティム。

4

2 に答える 2

1

私は何が間違っていたかを発見しました。

Redis をインストールしましたが、これは Redis ドライバーと NodeJS の間のブリッジのように機能する Redis ライブラリです。Cloud9 では、Redis も手動でインストールする必要があります。

したがって、実際に Redis をインストールするには 2 つのコマンドが必要です。

Cloud9 に Redis ドライバーをインストールする

nada-nix install redis

NodeJS 用の Redis ライブラリをインストールする

npm install redis

私を助けようとしてくれた人に感謝します。

于 2013-09-06T08:51:52.233 に答える
0

独自の構成ファイルを使用して redis-server を実行できます。以下のように独自の構成を作成できます。

 //port and ip of ur redis server
  port 6371
  bind 127.0.0.1
  //password for this server
  requirepass ucanmentionurpwd
  //storing snapshots of the data 
  save 60 1
  dbfilename dump.rdb
  dir /tmp/db

  //starting redis server
   redis-server //ur config file location

redis 構成については、このリンクを参照して ください https://raw.github.com/antirez/redis/2.6/redis.conf

パスワードでrequirepassに言及した場合、あなただけがする必要があることを意味します

         client.auth('urPwd');

それ以外の場合は、client.auth メソッドを呼び出す必要はありません。

于 2013-09-05T12:53:22.203 に答える