2015-04-09 3 views
3

Хорошо, граждане Интернета, мне нужна помощь ... Мой сверхпростой метод Remote не запускает обратный вызов. Вместо этого я получаю сообщение об ошибке:Loopback Удаленный метод Обратный звонок не работает

/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'); 

Почему шлейфу не проходящее обратного вызова?

+0

Я не вижу ничего плохого на первый взгляд. Можете ли вы проверить значения аргументов, переданные в loopback в строке 4, чтобы узнать, является ли последний аргумент обратным вызовом? ie) 'console.log (arguments)' в строке 4. – superkhau

+0

{'0': 'мой тестовый успех', '1': '', '2': 'test success', '3': ' info '} –

+0

Похоже, что обратный вызов не передается удаленному методу, но все данные выглядят ... Вы также можете опубликовать URL-адрес, который вы нажимаете на свой API и любой орган запроса? – jakerella

ответ

4

Да, удаленный метод применяется только к запросу через конечную точку API. Если вы вызываете его напрямую, предоставьте свой собственный обратный вызов.

Смежные вопросы