【发布时间】:2017-03-10 23:01:43
【问题描述】:
我正在学习 Loopback,我想了解最佳的 Loopback 做法。 我有一个基于用户默认模型的成员模型和一个跟随模型。一个成员可以有很多关注者。
{
"name": "Member",
"base": "User",
"idInjection": true,
"options": {
"validateUpsert": true
},
"properties": {
"nickname": {
"type": "string"
}
},
"validations": [],
"relations": {
"messages": {
"type": "hasMany",
"model": "Message",
"foreignKey": ""
},
"followers": {
"type": "hasMany",
"model": "Member",
"foreignKey": "followeeId",
"through": "Follow"
},
"following": {
"type": "hasMany",
"model": "Member",
"foreignKey": "followerId",
"through": "Follow"
}
},
"acls": [
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "ALLOW"
}
],
"methods": {}
}
这是我的关注模型
{
"name": "Follow",
"base": "PersistedModel",
"idInjection": true,
"options": {
"validateUpsert": true
},
"properties": {},
"validations": [],
"relations": {
"follower": {
"type": "belongsTo",
"model": "Member",
"foreignKey": ""
},
"followee": {
"type": "belongsTo",
"model": "Member",
"foreignKey": ""
}
},
"acls": [],
"methods": {}
}
我希望会员能够获取其关注者,但实现这一目标的最佳方式是什么:
- 我是否应该修改默认用户 ACL 以便能够从
Member with /Members/{id}/followers(当前被阻止)获取数据? -
我应该为成员创建一个新的远程方法来实现这一点吗?最好的方法是什么?我是否应该像使用 accesstoken 的另一种方法一样检查成员身份(下面的示例)?
Professionaldemand.createDemand = function (accessToken, cb) { //Rejection if not an authenticated User if (!accessToken) { return errorUtility.CallbackError("Access Token is not valid", 400, cb); } var currentDate = new Date(); Professionaldemand.create({ Acceptation: false, CreationDate: currentDate, memberId: accessToken.userId }, function (err) { if (err) { return errorUtility.CallbackError("Professionaldemand creation error", 400, cb); } }, cb(null)); };
方法定义:
Professionaldemand.remoteMethod(
'createDemand', {
http: {
path: '/createDemand',
verb: 'post'
},
description: ["Permits client to ask for a professional permission"]
,
accepts: [
{
arg: 'access_token',
type: 'object',
http: function (ctx) {
return ctx.req.accessToken;
}
}
]
}
);
【问题讨论】:
标签: node.js loopbackjs strongloop loopback