我可以在 strongloop 中隐藏数据源的模型属性吗?
Can I hide model properties from datasources in strongloop?
我想将 "token" 对象传递给 POST /MyObject。最简单的方法似乎是将它添加为 属性 到 MyObject.json。问题是这个令牌没有持久化(它不会持续很长时间,不需要保存)。
我想出了如何解决 POST 的这个问题:
MyObject.beforeRemote('create', function (context, unused, nextFn) {
var token = context.args.data.token;
//We have to delete this so it doesn't try to put it in the database
delete context.args.data.token;
nextFn();
});
但是当我执行 GET 时代码崩溃了。
我尝试将它作为第二个参数添加到一个新的远程方法中,将 MyObject 作为第一个参数,但是在与 strongloop 搏斗了三个小时并且没有任何结果后我放弃了/
有什么方法可以只添加一个 属性 以便我可以在节点中使用它,但又不让它被持久化?
您可以定义一个模型来表示。
//MyObjectInput.json
{
"name": "MyObjectInput",
"base": "Model",
"idInjection": true,
"options": {
"validateUpsert": true
},
"properties": {
"name": {
"type": "string",
"required": true
},
"token": {
"type": "string"
}
...
},
"validations": [],
"relations": {},
"acls": [],
"methods": {}
}
//MyObject.json
{
"name": "MyObject",
"base": "PersistedModel",
"strict": true,
"idInjection": true,
"options": {
"validateUpsert": true
},
"properties": {
"name": {
"type": "string",
"required": true
}
...
},
"validations": [],
"relations": {},
"acls": [],
"methods": {}
}
请注意要sctrict
键入MyObject.json
。它表示应保留所有已定义的属性。现在您在 MyObject
定义中没有 token
,因此它不会被保留。
//MyObject.js
MyObject.remoteMethod(
'create', {
accepts: [
{
arg: 'data',
type: 'MyObjectInput',
http: {source: 'body'}
}
],
returns: {
arg: 'result',
type: 'object',
root: true
},
http: {
path: "/create",
verb: 'post',
status: 201
}
}
);
我想将 "token" 对象传递给 POST /MyObject。最简单的方法似乎是将它添加为 属性 到 MyObject.json。问题是这个令牌没有持久化(它不会持续很长时间,不需要保存)。
我想出了如何解决 POST 的这个问题:
MyObject.beforeRemote('create', function (context, unused, nextFn) {
var token = context.args.data.token;
//We have to delete this so it doesn't try to put it in the database
delete context.args.data.token;
nextFn();
});
但是当我执行 GET 时代码崩溃了。
我尝试将它作为第二个参数添加到一个新的远程方法中,将 MyObject 作为第一个参数,但是在与 strongloop 搏斗了三个小时并且没有任何结果后我放弃了/
有什么方法可以只添加一个 属性 以便我可以在节点中使用它,但又不让它被持久化?
您可以定义一个模型来表示。
//MyObjectInput.json
{
"name": "MyObjectInput",
"base": "Model",
"idInjection": true,
"options": {
"validateUpsert": true
},
"properties": {
"name": {
"type": "string",
"required": true
},
"token": {
"type": "string"
}
...
},
"validations": [],
"relations": {},
"acls": [],
"methods": {}
}
//MyObject.json
{
"name": "MyObject",
"base": "PersistedModel",
"strict": true,
"idInjection": true,
"options": {
"validateUpsert": true
},
"properties": {
"name": {
"type": "string",
"required": true
}
...
},
"validations": [],
"relations": {},
"acls": [],
"methods": {}
}
请注意要sctrict
键入MyObject.json
。它表示应保留所有已定义的属性。现在您在 MyObject
定义中没有 token
,因此它不会被保留。
//MyObject.js
MyObject.remoteMethod(
'create', {
accepts: [
{
arg: 'data',
type: 'MyObjectInput',
http: {source: 'body'}
}
],
returns: {
arg: 'result',
type: 'object',
root: true
},
http: {
path: "/create",
verb: 'post',
status: 201
}
}
);