无法使用 DerbyJS 在视图中显示文档列表

couldn't show list of documents in the view using derbyjs

本文关键字:显示 文档 列表 视图 DerbyJS      更新时间:2023-09-26

这是我第一次使用derbyjs,不知道是我愚蠢还是缺乏文档。我有一个名为"书籍"的模型,我只是想显示书籍列表。

这是我的代码:

module.exports = {
    properties: {
        title: {type: 'string', minLength: 6},
        author: {type: 'integer', minimum: 0},
        image: {type: 'string'},
        status: {type: 'integer', minimum: 0, maximum: 1}, // 1 read, 0 wants to read
        comment: {type: 'string'}
    },
    required: ['title']
}

和架构列表

module.exports = {
    schemas: {
        auths: require('./model/auths'),
        products: require('./model/products'),
        books: require('./model/books')
    }
}

索引 JS的

app.get('/shelf', function(page, model, params, next){
    model.subscribe('books', function(){
        var book = model.at('books.669374b5-8470-4f3a-a25f-0995a5a92a7a');
        model.ref('_page.book', book);
        page.render('home');
    });
});

我希望视图中有"书籍",所以我像这样写{{each}}

{{ each books as #b}}
    {{ #b.title }}
{{/each}}

但是什么也没有显示,尽管这工作正常并按预期呈现

{{ _page.book.title }}

同样在网络控制台上,这工作正常并显示 3 本书

app.model.get('books')

注意:我通过 Web 控制台添加了书籍,如下所示

app.model.add('books', {title: 'something'})

在订阅功能中,我尝试过

var books = model.get('books');
model.ref('_page.books', books);

但是错误上升

知道我做错了什么吗? 我真的很喜欢德比,但这让我退缩了几天

如果您希望

页面自动更新,则应使用ref而不是get(),例如

app.get('/shelf', function(page, model, params, next) {
  var booksQuery = model.query('books', {});
  model.subscribe(booksQuery, function(err) {
    booksQuery.ref('_page.books');
    page.render('books');
  });
});

模板:

{{ each _page.books as #b}}
  {{ #b.title }}
{{/each}

除了官方的德比文档之外,我发现德比常见问题解答是一个很好的资源。