我们正在使用RequireJS和Node构建项目,并重用服务器和客户端模块。到目前为止它已经相当不错了(一些小问题可以解决)。
问题似乎是延迟回调中的错误不会在节点控制台中显示(或者以任何其他方式显示)。使调试非常困难。
asdasdasd(); // Throws error, function is undefined, as intended
this.loadOrganization(organization_key, true).then(function(org) {
asdasdasd(); // No error anywhere, script just stops executing
});
loadOrganization返回一个延迟对象,并且回调被调用正常 - 但是没有显示与undefined有关的错误消息(评估模块时节点会报告一般语法错误。)
我们使用带有jquery的jsdom为服务器端的浏览器引导内容。然后将jquery从jsdon传递给大多数方法 - 所以用于loadOrganization的延迟对象是来自jQuery到jsdom的对象。然而,从已安装npm的jquery中将延迟使用更改为一个没有区别。
任何建议都会有所帮助,如果没有打印错误,很难调试。
答案 0 :(得分:1)
想出来,在服务器端的Backbone.Sync实现中是一个疯狂的try / catch语句。这意味着通过API(几乎任何东西)的任何东西都被一个将错误传递给Backbone.Sync错误回调的try / catch捕获,并且再也没有听到过。
故事的寓意;如果没有输出错误,请查看代码中的Try / Catches。