loopback - 更改预定义的远程方法路径

时间:2016-02-12 16:51:22

标签: node.js loopbackjs

例如:为了创建新用户,标准路径为POST /api/users/

这会调用create远程钩子等

如何将标准路径更改为POST /api/users/new/并仍然保留当前(和正确)功能?感谢。

或者可以使用新的远程方法user.new()复制此功能吗?那怎么样?

1 个答案:

答案 0 :(得分:1)

添加远程方法user.new并自行调用User.create()

我假设您从(小写)user.js和user.json模型开始,该模型是带有环回的内置(大写)用户模型的扩展。

在user.js中,类似这样:

module.exports = function(user) {

  user.remoteMethod('new',
    {
      accepts: [
        {arg: 'userInfo', type: 'object'}
      ],
      returns: {
        arg: 'success',
        type: 'boolean'
      }
    }
  );

  user.new = function(userInfo, cb) {

    user.create(userInfo, function(err, newUser) {
      if(err) return cb(err, null);

      return cb(null, true);

    });

  };

};

您还可以使用远程方法规范上的附加http属性修改REST API http url路径结构。这不是严格必要的,因为该方法默认采用方法的名称。如果您可以修改此内容以覆盖内置插件的行为,那会很酷,但我还没有测试是否可行。您还可以强制执行POST:

user.remoteMethod('new',
  {
    http: {path: '/new', verb: 'post'}, // <--
    accepts: [
      {arg: 'userInfo', type: 'object'}
    ],
    returns: {
      arg: 'success',
      type: 'boolean'
    }
  }
);