如何 select 特定列数据显示在我的书架模型中 Node.js 中的 belongsTo 关系?
How do I select specific column data to be displayed in my bookshelf model belongsTo relationship in Nodejs?
这是我想做的人为示例:
假设我有一个球队和球员的数据库:
team:
->id
->color
->rank
->division
player:
->id
->team_id
->number
->SECRET
以及以下书架型号:
var Base = require('./base');
const Player = Base.Model.extend(
{
tableName: "players",
},
nonsecretdata: function() {
return this.belongsTo('Team')
},
{
fields: {
id: Base.Model.types.integer,
team_id: Base.Model.types.integer,
number: Base.Model.types.integer,
SECRET: Base.Model.types.string,
}
}
);
module.exports = Base.model('Player', Player);
和
var Base = require('./base');
const Team = Base.Model.extend(
{
tableName: "teams",
},
{
fields: {
id: Base.Model.types.integer,
color: Base.Model.types.string,
rank: Base.Model.types.integer,
division: Base.Model.types.string,
}
}
);
module.exports = Base.model('Team', Team);
我的问题是,我怎样才能限制玩家的范围,这样 SECRET 就不会被使用回调非秘密数据加入玩家和团队的调用所抢夺?
我是 Bookshelf 的新手,所以如果需要任何其他信息,请告诉我。谢谢
++++++++++
编辑:我需要创建一个单独的模型吗?
使用 bookshelf 执行此操作的唯一方法是在获取整个模型后从对象中删除各个字段。
这个用例的一个可能更好的解决方案是定义一个自定义数据访问对象 class,它使用 SQL 查询来获取想要获取的信息,然后使用该 DOA而不是使用书架。这样,SQL 代码仍然从请求信息的代码中抽象出来,并且添加到 table 的 SECRET 或任何其他潜在敏感信息将不会包含在提取中。
这是我想做的人为示例:
假设我有一个球队和球员的数据库:
team:
->id
->color
->rank
->division
player:
->id
->team_id
->number
->SECRET
以及以下书架型号:
var Base = require('./base');
const Player = Base.Model.extend(
{
tableName: "players",
},
nonsecretdata: function() {
return this.belongsTo('Team')
},
{
fields: {
id: Base.Model.types.integer,
team_id: Base.Model.types.integer,
number: Base.Model.types.integer,
SECRET: Base.Model.types.string,
}
}
);
module.exports = Base.model('Player', Player);
和
var Base = require('./base');
const Team = Base.Model.extend(
{
tableName: "teams",
},
{
fields: {
id: Base.Model.types.integer,
color: Base.Model.types.string,
rank: Base.Model.types.integer,
division: Base.Model.types.string,
}
}
);
module.exports = Base.model('Team', Team);
我的问题是,我怎样才能限制玩家的范围,这样 SECRET 就不会被使用回调非秘密数据加入玩家和团队的调用所抢夺?
我是 Bookshelf 的新手,所以如果需要任何其他信息,请告诉我。谢谢
++++++++++ 编辑:我需要创建一个单独的模型吗?
使用 bookshelf 执行此操作的唯一方法是在获取整个模型后从对象中删除各个字段。
这个用例的一个可能更好的解决方案是定义一个自定义数据访问对象 class,它使用 SQL 查询来获取想要获取的信息,然后使用该 DOA而不是使用书架。这样,SQL 代码仍然从请求信息的代码中抽象出来,并且添加到 table 的 SECRET 或任何其他潜在敏感信息将不会包含在提取中。