タイトルこれでいいのかなって感じですが、要はroutes/以下に配置されたルーティング時の処理を記述ファイル内でappオブジェクトを使う方法っす。
一応「日本最速express3入門」を読みながらやっていたのですが、なぜかappオブジェクトが空だといわれますた。。。
コードはこんな感じです。
app.js
1
2
3
4
5
6
7
8
9
|
var express = require('express')
, routes = require('./routes')
, http = require('http')
, path = require('path')
, redis = require('redis')
, fs = require('fs');
// var app = express();
var app = module.exports = express();</code></pre>
|
で、routes/hoge.jsがこんな感じですた。
1
2
3
4
5
6
7
8
9
|
/*
* GET home page.
*/
var app = module.parent.exports
exports.index = function(req, res){
console.log(app);
res.render('index', { title: 'Express' });
};
|
んで、console.logでappの中身確認してたら、空でした。
なんでだろうと悩んでしまいましたが、よーくみたらroutesをrequireするまえにapp変数にexpress()の値を入れてあげなきゃですよね。。。。
つまらないことで悩んでしまいました。。。。
ということでこういう感じapp.jsを記載してあげれば問題ないです。
1
2
3
4
5
6
7
8
9
|
var express = require('express');
var app = module.exports = express();
var routes = require('./routes')
, user = require('./routes/user')
, acount = require('./routes/account')
, http = require('http')
, path = require('path')
, redis = require('redis')
, fs = require('fs');
|