3

私はnode.jsを手に入れており、require/exports全体を理解しようとしています。次のメイン app.js ファイルがあります。

/app.js

var express  = require('express'),
    http     = require('http'),
    redis    = require('redis'),
    routes   = require('./routes'),

var app    = express(),
    client = redis.createClient();


// some more stuff here...
// and my routes

app.get('/', routes.index);

次に、ルートファイルがあります:

exports.index = function(req, res){
  res.render('index', { title: 'Express' });
};

もちろん、app.js ファイルでクライアント オブジェクトを使用できますが、ルートで同じオブジェクトを使用するにはどうすればよいでしょうか?

4

2 に答える 2

1

reqresはすでに Express によって渡されているため、カスタム ミドルウェアで一方または両方にアタッチできますclient

app.use(function (req, res, next) {
  req.client = res.client = client;
  next();
});

ミドルウェアでは順序が重要であることに注意してくださいapp.use(app.router);

ただし、その後、client任意のルート ハンドラ内にアクセスできます。

exports.index = function(req, res){
  req.client.get(..., function (err, ...) {
    res.render('index', { title: 'Express' });
  });
};
于 2013-08-18T21:24:03.243 に答える