2016-02-12 25 views
0

例如:为了创建新用户,标准路径是POST/api/users/loopback - 更改预定义的远程方法路径

这个调用create远程钩等

怎么可能到标准路径更改为类似POST/api/users/new/和仍保留目前的(正确)的功能?谢谢。

或者是有可能用新的远程方法user.new()复制此功能?那看起来怎么样?

回答

1

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

我假设你开始使用的是(小写)user.js和user.json模型,它是内置(大写)用户模型的一个扩展,它附带了loopback。

在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); 

    }); 

    }; 

}; 

您也可以修改REST API HTTP URL路径结构上的远程方法规范额外http属性。这不是严格必要的,因为该方法默认采用该方法的名称。如果你可以修改这个来覆盖内置的行为,那么会很酷,但是我还没有测试过这是否可行。您也可以强制执行POSTing:

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