gpt4 book ai didi

couchdb - 可以在 CouchDB "show"函数中使用dust.js 模板吗?

转载 作者:行者123 更新时间:2023-12-05 00:11:23 25 4
gpt4 key购买 nike

dust.js 是一个异步 javascript 模板引擎——你将一个回调传递给“render”函数。

另一方面,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"}

当作为 CommonJS 模块导入时,似乎“dust.js”并没有公开它的所有功能?
这是为什么?
我怎样才能使这项工作?

最佳答案

仅基于对灰尘来源的初步了解,如果它不在浏览器中运行,它似乎期望找到一些特定于 nodejs 的东西。特别是,看起来dust.compile 仅从仅在定义了进程而未定义窗口时才调用的代码中导出。在 CouchDB 的 View 引擎下运行时,两者都不会被定义。

关于couchdb - 可以在 CouchDB "show"函数中使用dust.js 模板吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9894769/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com