команда lb-ng loopback возвращает «Не удается прочитать свойство ‘apply’ неопределенного» из асинхронного модуля

#node.js #loopbackjs #strongloop #angular-loopback

#node.js #loopbackjs #strongloop #angular-loopback

Вопрос:

Я попытался запустить этот пример обратного цикла в кофейне:

http://loopback.io/doc/en/lb2/Create-AngularJS-client.html

Все казалось нормально, пока я не получил эту ошибку при интеграции с AngularJS

При использовании приведенной ниже команды:

 lb-ng server/server.js client/js/services/lb-services.js
 

Я получил этот стек ошибок:

 Loading LoopBack app "/home/dqlgnoleht/Working/Projects/loopback-getting-started/server/server.js"
/home/dqlgnoleht/Working/Projects/loopback-getting-started/node_modules/async/dist/async.js:1340
        return fn.apply(null, args.concat(callArgs));
                 ^

TypeError: Cannot read property 'apply' of undefined
    at /home/dqlgnoleht/Working/Projects/loopback-getting-started/node_modules/async/dist/async.js:1340:22
    at apply (/home/dqlgnoleht/Working/Projects/loopback-getting-started/node_modules/async/dist/async.js:40:29)
    at /home/dqlgnoleht/Working/Projects/loopback-getting-started/node_modules/async/dist/async.js:76:16
    at /home/dqlgnoleht/Working/Projects/loopback-getting-started/node_modules/async/dist/async.js:3828:13
    at replenish (/home/dqlgnoleht/Working/Projects/loopback-getting-started/node_modules/async/dist/async.js:1018:21)
    at /home/dqlgnoleht/Working/Projects/loopback-getting-started/node_modules/async/dist/async.js:1022:13
    at eachOfLimit (/home/dqlgnoleht/Working/Projects/loopback-getting-started/node_modules/async/dist/async.js:1049:26)
    at /home/dqlgnoleht/Working/Projects/loopback-getting-started/node_modules/async/dist/async.js:1054:20
    at eachOf (/home/dqlgnoleht/Working/Projects/loopback-getting-started/node_modules/async/dist/async.js:1127:9)
    at _parallel (/home/dqlgnoleht/Working/Projects/loopback-getting-started/node_modules/async/dist/async.js:3827:9)
 

Как правильно его запустить? Или я просто пропустил какую-то конфигурацию для этого. Пожалуйста, помогите!

Заранее большое спасибо за любую помощь!

Ответ №1:

Вы должны вернуть функцию, которая возвращает асинхронную функцию. Это может быть что-то вроде этого:

models/candidate.js

 module.exports = function (Candidate) {

  Candidate.getRawCV = getRawCV(Candidate);

  function getRawCV (Candidate) {
    return async function (next) {
      ...async code...
    }
  }

}