我希望我的docpad网站使用mongoDb而不是文件系统来存储文件(Heroku部署)。这是一个docpad插件吗?我似乎无法找到让docpad使用mongo的直接方式。我已经查看了Need explanation for Docpad persistence - 但这并未提供实现连接的实际技术细节
答案 0 :(得分:1)
我不知道任何mongodb插件。最简单的出发点可能是采用tubmlr plugin并使其适应读取形式mongodb而不是tumblr rss / atom feed。
该插件的代码并不十分复杂。首先,您希望将fetchTumblrData函数替换为从MongoDB获取数据的函数,然后您需要调整the code in populateCollections以将该数据转换为虚拟文档。
答案 1 :(得分:0)
我一直在研究一些现在可以从Mongodb读取的代码并返回一个可以渲染到docs中的对象。我还尝试编写一些代码来为数据库的基本编辑提供后端,但更新后的重新生效还没有起作用(尽管可能是在你读这篇文章的时候!)。
关键部分(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
@