nma*_*jor 5 javascript node.js bookshelf.js
我有一个Bookshelf.js模型.我希望能够为此模型设置和获取在数据库中不持久的属性.
例如,假设我有一个看起来像这样的模型:
var Domain = bookshelf.Model.extend({
tableName: 'domains',
initialize: function() {
this.on('creating', this.setDomainName);
},
setDomainName: function() {
this.set('name', getDomainFromUrl(this.url));
}
});
Run Code Online (Sandbox Code Playgroud)
使用如下所示的架构:
knex.schema.createTable('domains', function (table) {
table.increments().index();
table.text('name').index();
table.timestamps();
});
Run Code Online (Sandbox Code Playgroud)
我希望能够保存名为url的属性,然后在保存之前将url解析为域.
当我尝试这样的事情时:
new Domain({url: 'http://someurl.com/foo/bar'}).save()
Run Code Online (Sandbox Code Playgroud)
我收到错误消息:
"column \"url\" of relation \"domains\" does not exist"
Run Code Online (Sandbox Code Playgroud)
我看了看.我找不到任何方法来将非持久性属性添加到bookshelf.js模型中.我也找不到任何关于向bookshelf.js模型添加自定义getter和setter方法的信息.
任何帮助或见解表示赞赏!
在我的手机上,请原谅简短的回复,但你想要的是"虚拟"或"复合"字段.
https://github.com/tgriesser/bookshelf/wiki/Plugin:-Virtuals
每个数据库映射器都有它们,但是当你不知道它们被称为什么时,谷歌解决方案很难理解.
| 归档时间: |
|
| 查看次数: |
1862 次 |
| 最近记录: |