我不确定我的问题是什么,但标题是我最好的猜测。包括我的错误日志和思考过程。我希望有人能帮帮忙。
/Users/fjcero/project/node_modules/sequelize/node_modules/bluebird/js/main/captured_trace.js:478 Unhandled rejection Error: TypeError: Illegal invocation
at Object.ensureErrorObject (/Users/fjcero/project/node_modules/sequelize/node_modules/bluebird/js/main/util.js:228:20)
at Promise._rejectCallback (/Users/fjcero/project/node_modules/sequelize/node_modules/bluebird/js/main/promise.js:416:22)
at Promise._settlePromiseFromHandler (/Users/fjcero/project/node_modules/sequelize/node_modules/bluebird/js/main/promise.js:460:17)
at Promise._settlePromiseAt (/Users/fjcero/project/node_modules/sequelize/node_modules/bluebird/js/main/promise.js:530:18)
at Promise._settlePromises (/Users/fjcero/project/node_modules/sequelize/node_modules/bluebird/js/main/promise.js:646:14)
at Async._drainQueue (/Users/fjcero/project/node_modules/sequelize/node_modules/bluebird/js/main/async.js:177:16)
at Async._drainQueues (/Users/fjcero/project/node_modules/sequelize/node_modules/bluebird/js/main/async.js:187:10)
at Immediate.Async.drainQueues [as _onImmediate] (/Users/fjcero/project/node_modules/sequelize/node_modules/bluebird/js/main/async.js:15:14)
at processImmediate [as _immediateCallback] (timers.js:321:17)
我开始将SQLite用作单个应用程序数据存储。我选择Sequelize作为ORM因为非常简单。在Web上下文中,这意味着通过Node.js运行应用程序一切都按预期工作。当我尝试在NW.js上下文中运行相同的Application时,问题就开始了。
首先,应该在particular way中编译SQLite3。我做到了,一切顺利。我定义了Sequelize模型,并且当执行sync()
时,如果不存在则创建所有表,并且模式是指定的。这意味着,在某些时候,SQLite3和Sequelize连接得很好,一切都按预期进行。
当我尝试使用save()
或get()
方法时,奇怪的问题就开始了,因为Promise的内容失败了。我想这可能是由于支持NW的SQLite模块的编译。我不知道它是否是库错误,或者是一些丢失的标志,或者NW上下文在Sequelize和SQLite通信之间发生了什么。由于这只发生在NW环境中,所以我选择在这里询问,这样我就可以了解我做错了什么或者我如何调试这个东西。
任何起点都将受到赞赏,无论是解决方案,还是它解释如何在Node Webkit中调试它。