exports「グローバル;」を定義しません を介して利用可能なモジュールの「パブリック」メンバーを定義しますrequire。また、exportsは常に最初に定義されておりexports === this、(exports ? this)実際には何もしていません。
ただし、グローバルは一般的に眉をひそめる(そしてノードのモジュールシステムの意図の一部を無効にする)ため、Webアプリケーションの一般的なアプローチは、またはオブジェクトdbのプロパティとしてへのアクセスを許可するカスタムミドルウェアを定義することです。reqres
# app.coffee
app.use (req, res, next) ->
req.db = redis.createClient()
next()
# routes/index.coffee
exports.index = (req, res) ->
req.db.set('online', Date.now(), (err,reply) -> console.log(reply))
この例は、npmjs.orgdecorate.jsのnpm-www背後にあるリポジトリのにあります。
function decorate (req, res, config) {
//...
req.model = res.model = new MC
// ...
req.cookies = res.cookies = new Cookies(req, res, config.keys)
req.session = res.session = new RedSess(req, res)
// ...
req.couch = CouchLogin(config.registryCouch).decorate(req, res)
// ...
}
ただし、代わりにグローバルとして定義したい場合はdb、Node.JSで次のglobalようにアタッチできる変数を定義します。
global.db = redis.createClient()