我正在尝试使用bogartjs和couchdb建立一个简单的博客。
我像这样使用viewEngine:
var viewEngine = bogart.viewEngine('mustache', path.join(bogart.maindir(), 'views'));
要获取数据库中所有帖子的列表,我使用bogart.promisify
进行实际调用并返回一个承诺,如下所示:
router.get('/postsp', function(req) {
var articles = nano.db.use('articles');
var readlist = bogart.promisify(articles.list);
readlist().then(function(data) {
console.log(data);
return viewEngine.respond('posts.html', data)
});
console.log('render');
});
但是此方法不会返回带有数据的模板posts.html
。这是在控制台中:
render
{ total_rows: 2,
offset: 0,
rows:
[ { id: '1ec1ba2efd99b08a296022a471000adc',
key: '1ec1ba2efd99b08a296022a471000adc',
value: [Object] },
{ id: '20ce1f108a8bdf2f19f04f42b0001a04',
key: '20ce1f108a8bdf2f19f04f42b0001a04',
value: [Object] } ] }
如何使用承诺的结果返回/呈现模板?
答案 0 :(得分:0)
您的对象需要上下文。出于同样的原因:
var log = console.log;
log(15); // exception in browsers.
传递上下文:
var readlist = bogart.promisify(articles.list, articles);