例如:为了创建新用户,标准路径为POST
/api/users/
。
这会调用create
远程钩子等
如何将标准路径更改为POST
/api/users/new/
并仍然保留当前(和正确)功能?感谢。
或者可以使用新的远程方法user.new()复制此功能吗?那怎么样?
答案 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'
}
}
);