如何在 Loopback 中向内置模型(比如用户)添加更多 remoteMethod

How to add more remoteMethod to Built-in Models (say User) in Loopback

如何在 Loopback 中为内置模型(比如用户)添加更多的 remoteMethod?

我创建了一个common/models/user.js 并添加了以下代码

var loopback = require('loopback');
var User = loopback.User;

User.signup = function(userData, callback){

        // Validate data
        // Save data - User
        // Create role mapping
        // return token
}

User.remoteMethod(
    'signup', 
    {
      accepts: [{ arg: 'userData', type: 'object' }],
      returns: { arg: 'token', type: 'object' },
      http: { verb: 'post' }
    });

但是,注册没有出现在资源管理器中。你能帮忙吗?

干杯,

实际上有一个 open issue 关于如何更好地处理这种情况。现在它并不漂亮,但你可以做到。根据您的情况,最简单的方法可能是创建一个简单的启动脚本来扩展 User.

server/boot/中创建一个新文件:a-new-user.js(不幸的是,文件必须按字母顺序排在explorer.js之前,否则新的远程方法不会出现在资源管理器界面中。)只需在该文件中添加以下代码并重新启动您的应用程序:

module.exports = function (app) {
    var User = app.models.User;

    User.signup = function(userData, callback){
        // ...
        callback(null, 'some response data');
    };

    User.remoteMethod(
        'signup',
        {
            accepts: [{ arg: 'userData', type: 'object' }],
            returns: { arg: 'token', type: 'object' },
            http: { verb: 'post' }
        }
    );
};