返回客户端之前修改环回模型
Modify loopback model before returning to client
我有一个 ServerFile 模型,它存储有关上传文件的各种信息。
{
....
filename: 'blah.jpeg',
container: 'images',
size: 123654,
...
}
我想 return 动态 url
属性 对象,而不将其存储在数据库中。
{
....
filename: 'blah.jpeg',
container: 'images',
size: 123654,
...
url: 'uploads/images/blah.jpeg'
}
我该怎么做?
在您的 common/models/server-file.js
文件中添加 find
上的远程挂钩。
module.exports = function(ServerFile) {
....
ServerFile.afterRemote('find', function(ctx, modelInstance, next) {
if (ctx.result) {
if (Array.isArray(ctx.result)) {
ctx.result.forEach(function(result) {
result.url = new String(result.constructUrl());
});
} else {
result.url = new String(result.constructUrl());
}
}
next();
});
此外,如果您希望在将属性发回之前删除它,您可以使用
result.unsetAttribute('password')
我有一个 ServerFile 模型,它存储有关上传文件的各种信息。
{
....
filename: 'blah.jpeg',
container: 'images',
size: 123654,
...
}
我想 return 动态 url
属性 对象,而不将其存储在数据库中。
{
....
filename: 'blah.jpeg',
container: 'images',
size: 123654,
...
url: 'uploads/images/blah.jpeg'
}
我该怎么做?
在您的 common/models/server-file.js
文件中添加 find
上的远程挂钩。
module.exports = function(ServerFile) {
....
ServerFile.afterRemote('find', function(ctx, modelInstance, next) {
if (ctx.result) {
if (Array.isArray(ctx.result)) {
ctx.result.forEach(function(result) {
result.url = new String(result.constructUrl());
});
} else {
result.url = new String(result.constructUrl());
}
}
next();
});
此外,如果您希望在将属性发回之前删除它,您可以使用
result.unsetAttribute('password')