node.jsのテンプレートエンジンExpressのroutesの書き方が一瞬わからなかったのでまとめたよ
しかだよ。
Expressのroutes配下の書き方がわからないので調べてみました。
expressのルーティング - hokaccha.hamalog v2
2012-07-14 - ZeBeVogue別館
なんかしっくりこない・・・。
なんとかなるんじゃないかなと思って、色々試してみた。それっぽいまとめ方ができたので報告。
routes配下の作り方
最初のテンプレートはこんなかんじ。
web.js
routes = require("./routes");
routes/index.js
exports.index = function(req, res) { return res.render("index", { title: "Shikajiro dayo" }); };
機能を増やす
index以外にaddとか追加するにはこんな感じでできた。
routes/index.js
exports.index = function(req, res) { return res.render("index", { title: "Shikajiro dayo" }); }; //add処理の追加 exports.add = function(req, res) { };
階層を増やす
index、addだけでは限界がある。exports.user.index, exports.user.addとか、階層を表現できるようにしたい。
routes/index.js
exports.index = function(req, res) { return res.render("index", { title: "Shikajiro dayo" }); }; //【これは動かない】 exports.user.add = function(req, res) { };
だめだった・・・。
userディレクトリを作ってその中にファイルを作る。んで、親階層のindex.jsでそれをrequireする手法をやってみる。
routes/index.js
//ちゃんと動く exports.index = function(req, res) { return res.render("index", { title: "Shikajiro dayo" }); }; //子階層を指定する exports.user = require('./user');
routes/user/index.js
exports.add = function(req, res) { }
呼び出しはこんな感じ。
web.js
var routes = require("./routes"); app.get '/', routes.index app.post '/user/', routes.user.add
routes/index.jsで子階層を指定するのがちょびっと冗長だけど、許せる範囲!
補足
最初間違えた事書いてたので記事消しました。この記事は訂正版になります。