我用express运行node.js.我在其中编写了一个包含方法的节点模块,因此当您访问 http://bla.com/module_name/method_name时 ,它将运行该方法.
该方法遵循典型的风格
exports.method_name(req, res, next);
Run Code Online (Sandbox Code Playgroud)
我的主应用程序执行以下操作:
app.all("*", resSetup, controller, render);
Run Code Online (Sandbox Code Playgroud)
和控制器是基于路径调用方法的东西.
似乎如果方法中存在未定义的变量错误,express将挂起并且不会抛出任何错误.控制台日志中也不会出现任何内容.我可以在错误发生之前和之后放置控制台消息,之前将出现在日志中,之后则不会.
我可以将它包装在try/catch中并获取:
[ReferenceError: blabla is not defined]
Run Code Online (Sandbox Code Playgroud)
但没有行号或任何东西.
我的猜测是快递以某种方式防止错误出现.当我将错误放在直接在路径中的名为"controller"的函数中时,它会正确显示错误.
这可能并不重要,但这是我正在处理的代码:
https://github.com/RobKohr/quick-site/blob/master/index.js
第189行是方法调用发生的地方.