在bogart中使用承诺数据访问

Using promisified data access in bogart

本文关键字:承诺 数据 访问 bogart      更新时间:2023-09-26

我正在尝试用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] } ] }

我如何返回/渲染模板与承诺的结果?

对象需要上下文。这是出于同样的原因:

var log = console.log;
log(15); // exception in browsers.

传递上下文:

var readlist = bogart.promisify(articles.list, articles);