2012-03-27 5 views
3

dust.jsは非同期のjavascriptテンプレートエンジンです。コールバックを "レンダリング"関数に渡します。CouchDBの「表示」機能でdust.jsテンプレートを使用できますか?

CouchDBの "show"関数は、実際にはHTMLを返す必要があります。

私はshow機能でdust.jsを使用できません!...それはうまくいきません。 この同期/非同期問題を回避するにはどうすればよいですか?

EDIT: 私は機能 "送信"(非同期)を使用して、それを行うことができるようになります。

{"error":"render_error","reason":"function raised error: (new TypeError(\"dust.compile is not a function\", \"\", 37)) \nstacktrace: (\"Hello, my name is {name}\")@:37\n(\"Hello, my name is {name}\",[object Object],(function (err, output) {send(output);}))@:33\n([object Object],[object Object])@:2\napply([object Object],[object Array])@:0\nrunShow(function (doc, req) {var dust = require(\"lib/dust\");dust.renderSource(\"Hello, my name is {name}\", {name:\"Nick\"}, function (err, output) {send(output);});},[object Object],[object Array])@/usr/share/couchdb/server/main.js:886\n(function (doc, req) {var dust = require(\"lib/dust\");dust.renderSource(\"Hello, my name is {name}\", {name:\"Nick\"}, function (err, output) {send(output);});},[object Object],[object Array])@/usr/share/couchdb/server/main.js:989\napply(null,[object Array])@:0\n(\"_design/ibs_policies\",[object Array],[object Array])@/usr/share/couchdb/server/main.js:1401\napply(null,[object Array])@:0\n()@/usr/share/couchdb/server/main.js:1443\[email protected]/usr/share/couchdb/server/main.js:1454\n"} 
:その..but

function(doc,req){ 
    var dust = require('lib/dust'); 
    dust.renderSource('Hello, my name is {name}',{name:'Nick'},function(err,output){ 
     send(output); 
    }); 
} 

が動作していない、私はこれを取得します

CommonJSモジュールとしてインポートしたときに、「dust.js」の機能がすべて公開されていないようですか? なぜですか? どうすればこの作品を作れますか?

答えて

1

ちょうどほこりのソースに関する予備的な見解に基づいて、それがブラウザで動作していない場合、nodejs固有のものを見つけることを期待しているようです。特に、dust.compileは、processが定義されていて、windowがない場合にのみ呼び出されるコードからのみエクスポートされるようです。 CouchDBのビューエンジンで実行しているときにはどちらも定義されません。

関連する問題