Momentjs与流星似乎并没有在服务器端工作
我在我的流星项目中使用了momentjs:moment包。客户端moment(new Date())
通话效果很好。如果我在服务器端执行相同的调用,或者如果我在console.log(moment(new Date()));
中包装相同的调用,则会在此问题底部收到错误消息。Momentjs与流星似乎并没有在服务器端工作
如果我运行meteor shell
,然后moment(new Date());
我也收到一个错误(moment is not defined
)。但是,如果从外壳,我把它包装在一个console.log(moment(new Date()));
它工作正常,并打印出来的控制台。
任何想法我忘记了什么,或者我不在这里做什么?
W20150318-19:55:45.885(-5)? (STDERR) TypeError: Property 'moment' of object #<Object> is not a function
W20150318-19:55:45.885(-5)? (STDERR) at Object._.extend.send_donation_email (app/server/methods/mandrill.js:37:25)
W20150318-19:55:45.885(-5)? (STDERR) at Object.Stripe_Events.charge.succeeded (app/server/lib/stripe_events.js:55:23)
W20150318-19:55:45.885(-5)? (STDERR) at [object Object].Router.route.where (app/both/router/router.js:238:48)
W20150318-19:55:45.885(-5)? (STDERR) at boundNext (packages/iron:middleware-stack/lib/middleware_stack.js:251:1)
W20150318-19:55:45.885(-5)? (STDERR) at runWithEnvironment (packages/meteor/dynamics_nodejs.js:108:1)
W20150318-19:55:45.885(-5)? (STDERR) at packages/meteor/dynamics_nodejs.js:121:1
W20150318-19:55:45.885(-5)? (STDERR) at [object Object].urlencodedParser (/Users/Bechard/.meteor/packages/iron_router/.1.0.7.1oysnq2++os+web.browser+web.cordova/npm/node_modules/body-parser/lib/types/urlencoded.js:69:27)
W20150318-19:55:45.885(-5)? (STDERR) at packages/iron:router/lib/router.js:277:1
W20150318-19:55:45.885(-5)? (STDERR) at [object Object]._.extend.withValue (packages/meteor/dynamics_nodejs.js:56:1)
W20150318-19:55:45.885(-5)? (STDERR) at [object Object].hookWithOptions (packages/iron:router/lib/router.js:276:1)
W20150318-19:55:45.885(-5)? (STDERR) at boundNext (packages/iron:middleware-stack/lib/middleware_stack.js:251:1)
W20150318-19:55:45.885(-5)? (STDERR) at runWithEnvironment (packages/meteor/dynamics_nodejs.js:108:1)
**更新:流星1.1仍然有这个问题。 **
我缩小了它似乎工作的原因,然后停止工作。如果我的应用程序遇到错误,而没有捕获它,那么时刻就会停止工作。为了测试这一点,我开始了流星,然后流星壳和瞬间(),它的工作。然后我得到我的应用程序调用一个不存在的函数,它总是抛出类似下面的错误。然后,我再次从Meteor Shell运行时刻(),此时刻()不起作用。如果我重新启动流星,它仍然不起作用。我重新启动了电脑,但仍然无法工作。
(STDERR) TypeError: Property 'customer.source.updated' of object #<Object> is not a function
W20150401-13:46:11.812(-5)? (STDERR) at [object Object].Router.route.where (app/both/router/router.js:254:48)
W20150401-13:46:11.812(-5)? (STDERR) at boundNext (packages/iron:middleware-stack/lib/middleware_stack.js:251:1)
W20150401-13:46:11.812(-5)? (STDERR) at runWithEnvironment (packages/meteor/dynamics_nodejs.js:108:1)
W20150401-13:46:11.812(-5)? (STDERR) at packages/meteor/dynamics_nodejs.js:121:1
W20150401-13:46:11.812(-5)? (STDERR) at [object Object].urlencodedParser (/Users/Bechard/.meteor/packages/iron_router/.1.0.7.1oysnq2++os+web.browser+web.cordova/npm/node_modules/body-parser/lib/types/urlencoded.js:69:27)
W20150401-13:46:11.812(-5)? (STDERR) at packages/iron:router/lib/router.js:277:1
W20150401-13:46:11.812(-5)? (STDERR) at [object Object]._.extend.withValue (packages/meteor/dynamics_nodejs.js:56:1)
W20150401-13:46:11.812(-5)? (STDERR) at [object Object].hookWithOptions (packages/iron:router/lib/router.js:276:1)
W20150401-13:46:11.812(-5)? (STDERR) at boundNext (packages/iron:middleware-stack/lib/middleware_stack.js:251:1)
W20150401-13:46:11.813(-5)? (STDERR) at runWithEnvironment (packages/meteor/dynamics_nodejs.js:108:1)
我花了太长时间来处理今天的确切问题。我刚刚更新到流星1.0.4.1时,我遇到了这个问题(虽然对我来说,问题是时刻范围无法找到moment
为了扩展它)。尝试恢复到Meteor 1.0.3.2并查看问题是否仍然存在。
UPDATE:
我刚刚升级流星1.0.5,这个问题可能已经离开了我。如果您尝试升级自己的应用,请在下面发帖,如果它也为您解决问题。谢谢!
是的,因为这个包是直接集成到momentjs包我没有看到在github上文件的问题。你试过还原吗?我在我的系统中找到了一个解决方法,但最终我需要这个工作。谢谢 – JoshJoe 2015-03-19 19:53:37
是的,我现在已经恢复到1.0.3.2。而且你是完全正确的,momentjs并没有公开实际的流星包,这是屁股... – bengreene 2015-03-19 22:09:23
实际上,他们似乎把他们的流星包装到他们的核心repo中:https://github.com/moment/时刻/树/发展/流星 - 所以我们应该在那里解决他们的问题。 – bengreene 2015-03-19 22:10:57
这个问题是流星在shell环境中重新加载并在Meteor 1.2中修复的一种错误。对于相关的错误修复信息,您可以使用Git Commit 2e43a9和ae8395或Meteor Issue #4010或#4109。
MomentJS Issue 2285跟踪此问题。
我没有遇到'momentjs:moment'和1.0.4.1这个问题,但是我有时在改变'packages'文件中的包序列方面取得了成功。每个包应该声明其依赖关系,但永远不会少... – dalgard 2015-03-20 22:17:35