我正在运行node.js应用程序,由于某些原因,当需要Bluebird模块时,node应用程序失败。
节点版本:require('bluebird')
蓝鸟版本:0.10.40
这真的很奇怪,我唯一需要做的就是这里的堆栈跟踪:
TypeError: Cannot call method 'split' of undefined
at Object.setBounds (app/node_modules/bluebird/js/release/debuggability.js:614:48)
at module.exports (app/node_modules/bluebird/js/release/promise.js:762:11)
at Object.<anonymous> (app/node_modules/bluebird/js/release/bluebird.js:9:36)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
var firstStackLines = firstLineError.stack.split("\n");
同样,应用程序运行良好。当我添加这一行
3.3.4
时,它崩溃了,我得到了这个堆栈跟踪。你知道这个错误是什么原因吗?[编辑]
在
require('bluebird')
行> console.log(firstLineError);
[Error]
> console.log(firstLineError.message);
> console.log(firstLineError.stack);
undefined
> console.log(firstLineError.toString());
Error: Error
> console.log(firstLineError instanceof Error);
True
它是一个基本上为空的错误对象
临时解决方案
当我将行
node_modules/bluebird/js/release/debuggability.js:614:48
更改为var firstStackLines = (firstLineError.stack) ? firstLineError.stack.split("\n") : "";
615线到
var lastStackLines = (lastLineError.stack) ? lastLineError.stack.split("\n") : "";
它工作得很好。但不确定这是否有持久的影响
最佳答案
我也有过类似的失败,更具体地说:
.../node_modules/bluebird/js/release/debuggability.js:673
var firstStackLines = firstLineError.stack.split("\n");
使用节点6.2.2和蓝鸟^3.4.1时。
使用节点v6.2.2升级到bluebird^3.4.6有助于修复错误。
关于node.js - Node 要求 Bluebird 失败,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36700567/