0

http://expressjs.com/guide.htmlのサンプル アプリケーションを試してみたかったので、次のように記述しました。

var express = require('express')
var redis = require('redis')
var db = redis.createClient();
var app = express();

app.use(function(req, res, next){
  var ua = req.headers['user-agent'];
  db.zadd('online', Date.now(), ua, next);
});

app.use(function(req, res, next){
  var min = 60 * 1000;
  var ago = Date.now() - min;
  db.zrevrangebyscore('online', '+inf', ago, function(err, users){
    if (err) return next(err);
    req.online = users;
    next();
  });
});

app.get('/', function(req,res){
  res.send(req.online.length + ' users online');
});


app.listen(3000);

しかし、それを起動しようとした後、私は得る

events.js:71
        throw arguments[1]; // Unhandled 'error' event
                       ^
Error: Redis connection to 127.0.0.1:6379 failed - connect ECONNREFUSED
    at RedisClient.on_error (/home/USER/programming/nodejs/express1/node_modules/redis/index.js:148:24)
    at Socket.<anonymous> (/home/USER/programming/nodejs/express1/node_modules/redis/index.js:83:14)
    at Socket.EventEmitter.emit (events.js:96:17)
    at Socket._destroy.self.errorEmitted (net.js:329:14)
    at process.startup.processNextTick.process._tickCallback (node.js:244:9)

node.js0.8.18 以降のパッケージを使用しています。

app@0.0.1 /home/USER/programming/nodejs/express1
├─┬ express@3.1.0
│ ├── buffer-crc32@0.1.1
│ ├── commander@0.6.1
│ ├─┬ connect@2.7.2
│ │ ├── bytes@0.1.0
│ │ ├── formidable@1.0.11
│ │ ├── pause@0.0.1
│ │ └── qs@0.5.1
│ ├── cookie@0.0.5
│ ├── cookie-signature@0.0.1
│ ├── debug@0.7.2
│ ├── fresh@0.1.0
│ ├── methods@0.0.1
│ ├── mkdirp@0.3.3
│ ├── range-parser@0.0.4
│ └─┬ send@0.1.0
│   └── mime@1.2.6
└── redis@0.8.2
4

1 に答える 1

0

reddis のポートを確認します。正しい場合は、それをブロックする可能性のあるファイアウォールで、そのポートにワイルドカードを指定します。他の何かがそのポートを使用しているかどうかを確認してください。接続設定を確認してください。

于 2013-02-10T15:22:43.927 に答える