返回客户端之前修改环回模型

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')