Meteor应用程序每两三分钟崩溃一次,并出现以下错误:
TypeError: Error.captureStackTrace is not a function
at Error.MongoError (/Users/alex/.meteor/packages/npm-mongo/.1.5.45.1i7w6an++os+web.browser+web.cordova/npm/node_modules/mongodb-core/lib/error.js:13:9)
at Function.MongoError.create (/Users/alex/.meteor/packages/npm-mongo/.1.5.45.1i7w6an++os+web.browser+web.cordova/npm/node_modules/mongodb-core/lib/error.js:29:11)
at Socket.<anonymous> (/Users/alex/.meteor/packages/npm-mongo/.1.5.45.1i7w6an++os+web.browser+web.cordova/npm/node_modules/mongodb-core/lib/connection/connection.js:161:20)
at Socket.g (events.js:260:16)
at emitNone (events.js:67:13)
at Socket.emit (events.js:166:7)
at Socket._onTimeout (net.js:332:8)
at _runOnTimeout (timers.js:524:11)
at _makeTimerTimeout (timers.js:515:3)
at Timer.unrefTimeout (timers.js:584:5)
这是在我将我的项目更新为Meteor 1.4之后开始的。流星在幕后做什么吗?我如何调试它以了解发生了什么?
更多细节:我正在使用React、React路由器和reactrouter:React路由器ssr。所以有服务器端渲染。也许这会引发一些事情。。。
伙计们。在我看来,最重要的细节是:Error.captureStackTrace is not a function
这是一个核心节点功能!如果我运行node并输入Error
,我会看到函数:captureStackTrace: [Function: captureStackTrace]
。所以这个问题看起来像是Meteor可能正在运行一个旧版本的节点,该节点在Error
中还没有captureStackTrace
?嗯,我按照这里的说明检查了版本:
MonsterMac:/ alex$ cd ~/.meteor/packages/meteor-tool/1.4.0-1/mt-os.osx.x86_64/dev_bundle/bin/
MonsterMac:bin alex$ ./node -v
v4.4.7
根据版本4.4.7中的变更日志captureStackTrace
。现在怎么办?
Meteor使用节点4.4.7。此外,在Meteor 1.4中,Mongo更新到了一个新版本。要解决此错误,请尝试流星重置。当你下一次启动流星时,这将把Mongo刷新到最新版本。