好的互联网公民,我需要一些帮助...我的超级简单的远程方法不会触发回调。相反,我收到此错误消息:
/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');
为什么loopback没有通过回调?
答案 0 :(得分:4)
是的,远程方法仅适用于通过API端点的请求。如果您直接调用它,请提供您自己的回调。
答案 1 :(得分:0)
为了正在阅读本文的任何人的利益。您可以利用loopback.lib.utils为您创建一个新的回调函数。
只需添加
const utils = require('loopback/lib/utils');
并在你的功能中
cb = cb || utils.createPromiseCallback();