我是Node的新手,使用bookshelf.js作为我当前项目的对象/对象模型。bookshelf.js的文档在fetch()方法下包含以下代码片段:
// select * from `books` where `ISBN-13` = '9780440180296'
new Book({'ISBN-13': '9780440180296'})
.fetch()
.then(function(model) {
// outputs 'Slaughterhouse Five'
console.log(model.get('title'));
});http://bookshelfjs.org/#Model-fetch
让我困惑的是,如果我们要查询现有的记录,为什么我们需要在这里创建一个新对象?bookshelf.js的工作方式是否需要为每个返回的结果创建一个新对象?
发布于 2015-08-20 18:12:15
这是令人困惑的。目前,只有一种类型的对象同时表示“模型”和“查询构建器”。
fetch使用模型上设置的属性预先填充WHERE子句。
有计划正在改变这一点。讨论here。
我建议这样做,而不是像上面那样编写代码:
// select * from `books` where `ISBN-13` = '9780440180296'
Book.where({'ISBN-13': '9780440180296'})
.fetch()
.then(function(model) {
// outputs 'Slaughterhouse Five'
console.log(model.get('title'));
});(我意识到您只是直接从文档中复制了这些内容。)
如果您希望就地更新模型,则首选使用新的Model#refresh
Book.forge({id: 5}).refresh().then(function (book) {//...https://stackoverflow.com/questions/32101415
复制相似问题