2017-01-27 12 views
0

Я написал простое действие, которое соединяется с mongo db с помощью модуля хранения seneca-mongo, выполняет запрос списка и получает результаты. Я вижу, что запрос был успешным и были получены правильные результаты. Когда я пытаюсь отправить эти результаты обратно клиенту, ошибки ответа на вызов выводятся со следующей трассировкой сообщения и стека.TypeError seneca indexof если не функция во время ответа

ERROR  act  root$   OUT    cmd:getparams,role:diff 11  {cmd:getparams,role:diff,payload:{id:scalaScan}} ENTRY (dqk22) -  seneca: Action cmd:getparams,role:diff callback threw: k.indexOf is not a function.  act_callback {message:k.indexOf is not a function,pattern:cmd:getparams,role:diff,instance:Seneca/0.7.2/d0twcki9cmxg/1485517  TypeError: k.indexOf is not a function 
    at /scratch/DiffAnalyzer/node_modules/seneca/node_modules/seneca-web/web.js:851:13 
    at Function.forEach (/scratch/DiffAnalyzer/node_modules/lodash/dist/lodash.js:3298:15) 
    at Object.defaultmodify [as modify] (/scratch/DiffAnalyzer/node_modules/seneca/node_modules/seneca-web/web.js:850:7) 
    at respond (/scratch/DiffAnalyzer/node_modules/seneca/node_modules/seneca-web/web.js:654:22) 
    at Seneca.<anonymous> (/scratch/DiffAnalyzer/node_modules/seneca/node_modules/seneca-web/web.js:401:7) 
    at act_done (/scratch/DiffAnalyzer/node_modules/seneca/seneca.js:1554:16) 
    at /scratch/DiffAnalyzer/node_modules/gate-executor/gate-executor.js:127:20 
    at Seneca.<anonymous> (/scratch/DiffAnalyzer/analyze.js:613:5) 
    at act_done (/scratch/DiffAnalyzer/node_modules/seneca/seneca.js:1554:16) 
    at /scratch/DiffAnalyzer/node_modules/gate-executor/gate-executor.js:127:20 
    at /scratch/DiffAnalyzer/node_modules/seneca-mongo-store/mongo-store.js:329:21 
    at /scratch/DiffAnalyzer/node_modules/mongodb/lib/mongodb/cursor.js:271:33 
    at /scratch/DiffAnalyzer/node_modules/mongodb/lib/mongodb/cursor.js:778:35 
    at Cursor.close (/scratch/DiffAnalyzer/node_modules/mongodb/lib/mongodb/cursor.js:1009:5) 
    at Cursor.nextObject (/scratch/DiffAnalyzer/node_modules/mongodb/lib/mongodb/cursor.js:778:17) 
    at Cursor.each (/scratch/DiffAnalyzer/node_modules/mongodb/lib/mongodb/cursor.js:264:12) 

Действие, которое я написал

seneca.add("role:diff,cmd:getparams", function(msg, respond) { 
    seneca.ready(function() { 
     var collection = seneca.make$("paramStore"); 
     var f = msg.payload; 

     seneca.log.info("Filter", f); 
     collection.list$(f, function(err, ob) { 
      if (err) { 
       seneca.log.error(err); 
       respond(err); 
      } else { 
       seneca.log.info("Result", ob); 
       respond(null, ob); 
      } 
     }); 
    }); 
}); 

Тот же кусок кода работает, и теперь я получаю эту ошибку. Не уверен, что изменилось. Любая помощь/предложения приветствуются.

ответ

0

Проблема, которую я столкнулся из-за этого бита кода в файле модуля

расслоение плотной
if(_.isObject(result.out)) { 
    _.each(result.out,function(v,k){ 
     if(~k.indexOf('$') && 'http$' !== k) { 
     delete result.out[k] 
     } 
    }) 

Функция _.each предназначается для разбора JSON объект, где в моем случае выход был на самом деле JSON. Обертка массива в объект разрешила его.

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

  • Нет связанных вопросов^_^