exports
「グローバル;」を定義しません を介して利用可能なモジュールの「パブリック」メンバーを定義しますrequire
。また、exports
は常に最初に定義されておりexports === this
、(exports ? this)
実際には何もしていません。
ただし、グローバルは一般的に眉をひそめる(そしてノードのモジュールシステムの意図の一部を無効にする)ため、Webアプリケーションの一般的なアプローチは、またはオブジェクトdb
のプロパティとしてへのアクセスを許可するカスタムミドルウェアを定義することです。req
res
# 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()