そもそもSynthって何よ
私の記事を参照
Synthってなんじゃらほい? - Qiita
本題
jade嫌いです。ejs使いたいです。
使いたかったのですが使い方が分からなくて二時間ぐらい悩みました。
issue立てよう思ってcloseを見たら解決方法がありました。
Synth is built on top of express. When you initialize synth (e.g. module.exports = synth()) it automatically tells express to use jade as the rendering engine, and then returns an express app.
When I get a chance I'll change it so that a different rendering engine can be passed in when initializing synth.
Right now, one workaround is to initialize synth (which returns the express app), then set a different rendering engine, then return the app to be launched. e.g.
var app = synth(); app.set('view engine', 'ejs'); module.exports = app;
In theory that should work for any rendering engine, assuming you've installed them and told the app about them.
結論、Expressに完全に依存しているので、Expressでejs使う時みたいに使えってことみたいです。
引用されたコードの意味がわからないんだけど
通常のsynthコマンドだとできないのですが、直接back-appを呼び出してlistenする方法もあります。
app = require "./back/back-app"
port = process.env.PORT || 3000
app.listen port, ->
console.log "Synth is now listening on port #{port}"
synth = require("synth")
# Connect to Mongo DB
db = require("promised-mongo")(process.env.MONGODB or "tweets-db")
# Provide DB connection to request handlers
synth.app.use (req, res, next) ->
req.db = db
next()
return
# Init and return synth app
module.exports = synth()
まぁ、ここらへんに挟み込めば動くかもしれないです。
近いうちにクラスタリングに対応させたバージョンをpull requestします。弾かれたらforkします。
記事ももうすぐ書きます。