【发布时间】:2015-02-05 02:24:50
【问题描述】:
我正在我基于 linux 的 wordpress 中开发一个 node.js 项目。就在今天,我需要在 OSX 中运行它。
一切安装完美。但是在尝试运行应用程序时,出现了这种没有原因的错误。有没有人遇到过同样的问题,如果是,解决方案是什么?
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 }));
【问题讨论】:
-
你能显示dashboardController.js:26这段代码吗?
-
你使用什么节点版本?
-
您是否使用 --harmony 选项运行节点?
-
是的。一切正常。登录、简单的身份验证等。只要任何方法具有 Array.forEach。它停止工作并显示这样的错误。
-
你为什么在
forEach中使用co(function *,这是一个同步操作...而不是.forEach(function(item){,你会很高兴
标签: node.js mongodb mongoose promise koa