2012-01-03 10 views
1

は、どのように私は、データベースが(express-resourceでロード)リソース「ユーザー」にnode.jsのexpress-resourcesへの参照を渡しますか?

nano = require('nano')('http://127.0.0.1:5984') 
db = nano.use('database') 

を参照たとえば渡すことができますか?

私が試した:

app.resource('user', require('./routes/user'), {db: db}); 

しかし、それは動作しませんが。

答えて

4

dbをuser.jsルーティングファイルに渡したいとします。あなたがやっていることはapp.resource関数に渡しています。

app.resource('user', require('./routes/user')(db)); 

あなたは、パラメータとしてdbを受け取ることができる機能であなたのuser.jsファイルをラップする必要があります。

module.exports = function(db) { 
    return { 
     index: function(req, res) {} 
    , new: function(req, res) {} 
    , create: function(req, res) {} 
    // etc 
    }; 
}; 

これが構造化されていない場合は、ミドルウェアを使用することもできます。

app.use(function(req, res, next) { 
    req.db = db; 
    next(); 
}); 
+0

ミドルウェアの内部で次の呼び出しを行う必要はありませんか? – Kolja

+0

はい、私はあなたが正しいと思います。 – fent

関連する問題