dust.js ist eine asynchrone JavaScript-Template-Engine - Sie übergeben einen Callback an die "render" -Funktion.Können dust.js-Vorlagen in einer CouchDB "show" -Funktion verwendet werden?
CouchDB "Show" -Funktionen, auf der anderen Seite, muss tatsächlich das HTML zurückgeben.
So kann ich dust.js nicht in meiner Show-Funktion verwenden! ... es wird einfach nicht funktionieren. Wie kann ich dieses synchrone/asynchrone Problem umgehen?
EDIT: ich sollte es tun können, indem Sie die (asynchron) mit "Senden" -Funktion:
function(doc,req){
var dust = require('lib/dust');
dust.renderSource('Hello, my name is {name}',{name:'Nick'},function(err,output){
send(output);
});
}
..aber das nicht funktioniert, bekomme ich diese:
{"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"}
Es scheint, dass "dust.js" nicht alle Funktionen ausgibt, wenn es als CommonJS-Modul importiert wird. Warum ist das? Wie kann ich das machen?