dust.js - это асинхронный движок шаблонов javascript - вы передаете обратный вызов в функцию «render».
Функции «show» CouchDB, с другой стороны, должны фактически возвращать HTML.
Так что я не могу использовать dust.js в своей функции показа! ... это просто не будет работать.Как я могу обойти эту синхронную / асинхронную проблему?
РЕДАКТИРОВАТЬ: я должен быть в состоянии сделать это с помощью (асинхронной) функции отправки:
function(doc,req){
var dust = require('lib/dust');
dust.renderSource('Hello, my name is {name}',{name:'Nick'},function(err,output){
send(output);
});
}
.. но этоне работает, я получаю это:
{"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\n@/usr/share/couchdb/server/main.js:1454\n"}
Кажется, что "dust.js" не раскрывает все свои функции при импорте в модуль CommonJS?Это почему?Как я могу сделать эту работу?