2014-12-07 2 views
0

Я работаю над проектом node.js в своем Wordpress на основе linux. Просто сегодня мне нужно было запустить его в OSX.Неизвестная ошибка в koa.js

Все установлено отлично. Но при попытке запустить приложение получило такую ​​ошибку, которая не имеет никакой причины. Есть ли кто-нибудь, кто сталкивался с такой же проблемой, если да, то, что такое solutuon?

TypeError: #<Promise> is not a function 
    at Array.forEach (native) 
    at Object.exports.indexAction (/Users/nixon/Documents/node/madefreshly-3/application/controllers/dashboardController.js:26:24) 
    at GeneratorFunctionPrototype.next (native) 
    at Object.dispatch (/Users/nixon/Documents/node/madefreshly-3/node_modules/koa-router/lib/router.js:96:44) 
    at GeneratorFunctionPrototype.next (native) 
    at Object.next (/Users/nixon/Documents/node/madefreshly-3/node_modules/koa/node_modules/co/index.js:74:21) 
    at /Users/nixon/Documents/node/madefreshly-3/node_modules/koa/node_modules/co/index.js:93:18 
    at /Users/nixon/Documents/node/madefreshly-3/node_modules/koa/node_modules/co/index.js:224:7 
    at in_the_handler (/Users/nixon/Documents/node/madefreshly-3/node_modules/mongoose/node_modules/mpromise/lib/promise.js:237:18) 
    at process._tickCallback (node.js:372:11) 

линии кода из dashboard.js

24  var raw7DayTotalSale = yield ships.ship.find({"ship_shipped": {'$gt' : last7Day}, store_id: this.session.loggedId}).where('ship_paid').ne('0').exec(); 
25  var last7dayTotalSale = 0; 
26  raw7DayTotalSale.forEach(co(function* (item) { 
27   last7dayTotalSale += Number(item.ship_total); 
28  })); 
+0

Не могли бы вы показать dashboardController.js: 26 этот код? –

+0

какую версию вы используете? –

+0

версия: 0.11.14 – nixon1333

ответ

0

Последняя версия со возвращает обещание, а не функцию.

Так .forEach() пытается вызвать обещание, как если бы это была функция.

Я полагаю, у вас есть другой вариант сотрудничества на каждой машине

[email protected] был освобожден, который полагается обещания. Это теперь ступенькой к ES7 async/await. Первичное изменение API - это то, как вызывается co(). Раньше co возвратил «thunk», который вы тогда вызываете с обратным вызовом с необязательными аргументами. Теперь co() возвращает обещание.

https://github.com/tj/co#co-v4

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