环回远程方法回调不起作用

Loopback Remote Method Callback not working

好的互联网公民,我需要一些帮助...我的超级简单的远程方法没有触发回调。相反,我收到此错误消息:

/maestro/common/models/datalog.js:11
                cb(null, err || 'success');
                ^
TypeError: undefined is not a function
    at /maestro/common/models/datalog.js:11:11

型号:

module.exports = function(Datalog) {

    Datalog.logdata = function(description, errordetails, errormsg, severity, cb) {
        Datalog.create(
            {
                description: description,
                errordetails: errordetails,
                errormsg: errormsg,
                severity: severity
            }, function(err, res) {
                cb(null, err || 'success');
            }
        );
    }

    Datalog.remoteMethod(
        'logdata', 
        {
            accepts: [
                {arg: 'description',  type: 'string'},
                {arg: 'errordetails', type: 'string'},
                {arg: 'errormsg',     type: 'string'},
                {arg: 'severity',     type: 'string'}
            ],
            returns: {arg: 'log', type: 'string'}
        }
    );

};

调用方法的文件:

logdata = require('./server/server.js').models.datalog.logdata;
logdata('my test success', '', 'test success', 'info');

为什么环回不传递回调?

是的,远程方法仅适用于通过 API 端点的请求。如果您直接调用它,请提供您自己的回调。

为了阅读本文的任何人的利益。您可以利用 loopback.lib.utils 为您创建一个新的回调函数。

只需添加

const utils = require('loopback/lib/utils');

在你的函数中

cb = cb || utils.createPromiseCallback();