gpt4 book ai didi

javascript - Bookshelf.js 设置属性不在数据库中

转载 作者:数据小太阳 更新时间:2023-10-29 06:11:13 25 4
gpt4 key购买 nike

我有一个 Bookshelf.js 模型。我希望能够为此模型设置和获取在数据库中不持久的属性。

例如,假设我有一个看起来像这样的模型:

var Domain = bookshelf.Model.extend({
tableName: 'domains',
initialize: function() {
this.on('creating', this.setDomainName);
},
setDomainName: function() {
this.set('name', getDomainFromUrl(this.url));
}
});

使用如下所示的模式:

knex.schema.createTable('domains', function (table) {
table.increments().index();
table.text('name').index();
table.timestamps();
});

我希望能够保存一个名为 url 的属性,然后在保存之前将 url 解析为一个域。

当我尝试这样的事情时:

new Domain({url: 'http://someurl.com/foo/bar'}).save()

我收到错误信息:

"column \"url\" of relation \"domains\" does not exist"

我看了又看。我找不到任何方法将非持久属性添加到 bookshelf.js 模型。我也找不到任何有关将自定义 getter 和 setter 方法添加到 bookshelf.js 模型的信息。

感谢任何帮助或见解!

最佳答案

在我的手机上,请原谅简短的回复,但你想要的是所谓的“虚拟”或“复合”字段。

https://github.com/tgriesser/bookshelf/wiki/Plugin:-Virtuals

每个数据库映射器都有它们,但是当您不知道它们的名称时,很难通过 google 找到解决方案。

关于javascript - Bookshelf.js 设置属性不在数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29425746/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com