【发布时间】:2018-03-23 11:02:21
【问题描述】:
好的,互联网公民,我需要一些帮助...我的超级简单远程方法没有触发回调。相反,我收到此错误消息:
/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没有通过回调?
【问题讨论】:
-
乍一看我没有发现任何问题。您能否检查第 4 行的 loopback 传入的参数值,以查看最后一个 arg 是否是回调?即)
console.log(arguments)第 4 行。 -
{ '0': '我的测试成功', '1': '', '2': '测试成功', '3': '信息' }
-
看起来回调没有传递到远程方法中,但所有数据似乎都是......您还可以在您的 API 和任何请求正文上发布您正在点击的 URL 吗?
-
问题中更新了。
-
我想我刚刚意识到这个问题......'returns'对象只适用于API请求,所以如果我在直接调用它时想要回调,我必须在调用时提供该回调不是吗?
标签: loopbackjs strongloop