我希望我的 docpad 网站使用 mongoDb 而不是文件系统来存储文档(Heroku 部署)。有这个的docpad插件吗?我似乎找不到让 docpad 使用 mongo 的直接方法。我已经查看过需要对 Docpad 持久性的解释——但这并没有给出实现连接的实际技术细节
问问题
269 次
2 回答
1
我不知道任何 mongodb 插件。最简单的起点可能是使用tubmlr 插件并将其调整为从 mongodb 中读取,而不是从 tumblr rss/atom 提要中读取。
该插件的代码并不是非常复杂。首先,您希望将fetchTumblrData函数替换为从 MongoDB 获取数据的函数,然后您希望调整populateCollections 中的代码以将该数据转换为虚拟文档。
于 2013-10-22T14:31:39.920 回答
0
我一直在研究一些现在可以从 Mongodb 读取并返回可以呈现为文档的对象的代码。我还尝试编写一些代码来为数据库的基本编辑提供后端,但更新后的重新生成尚未起作用(尽管可能是在您阅读本文时!)。
关键部分(感谢 BALupton 帮助解决回调复杂性)如下。
extendTemplateData: (opts,next) ->
config = @getConfig()
mongoose.connect(config.uristring)
db = mongoose.connection
db.on 'error', (err) ->
docpad.error(err) # you may want to change this to `return next(err)`
db.once 'open', ->
queries = config.queries
queryCount = 0
totalQueries = Object.keys(queries).length
for index, query of queries
((indexClosure) ->
Dbdata.find query.predicate, (err, data) ->
opts.templateData[indexClosure] = data
if (++queryCount == totalQueries)
mongoose.connection.close()
return next(err) if err
return next(null, data)
)(index)
# Chain
@
于 2014-02-23T15:22:20.527 回答