Wor*_*orp 5 javascript undefined require node.js
我的节点代码中有一个ErrorHandler类来处理所有发生的错误.
每个错误都有自己的类.所有类都放在单独的文件中,因此文件夹结构为:
ErrorHandler需要这些文件中的每一个(以及其他一些文件)
var serverErrorCodes = require('../../config/ErrorCodesConfig').server,
clientErrorCodes = require('../../config/ErrorCodesConfig').client,
Error110 = require('./errors/Error110').Error110,
Error131 = require('./errors/Error131').Error131,
Error132 = require('./errors/Error132').Error132,
Error133 = require('./errors/Error133').Error133,
Error150 = require('./errors/Error150').Error150;
Run Code Online (Sandbox Code Playgroud)
在运行时检查节点调试器时,需要的结果是:
Closure:
Error110: function Error110(params)
Error131: function Error131(params)
Error132: undefined
Error133: undefined
Error150: function Error150(messageObject, callback)
Run Code Online (Sandbox Code Playgroud)
在require之后,Error132和Error133不可用,而其他则完美.
我已经读过如果你有一个需求周期就会发生这种情况,因此所需的模块(A)需要一个模块(B),它再次需要模块A.节点然后通过undefined在第一次需要之后返回来结束这个循环.不是这种情况.
所以我的最后一个猜测是,在执行时,由于节点的异步性质,文件"尚未"需要,因此只包括"一些"文件.但是require是一个同步函数.我不确定这种情况是否可行以及我将如何检查它.
我在这里一无所知,非常感谢帮助.
最诚挚的问候,Worp
编辑1:
正如Travis Webb所指出的:这是错误的!
如果您需要一个已包含在代码前面某处的模块,也会发生这种情况.我想到了这个,但我不需要一个模块.这一切似乎都不是真的,因为,例如,util模块需要包含在每个使用它的文件中,而不是只包含一次.
Tra*_*ebb 20
更简单的解释是module.exports解析到undefined您需要的模块内部.发布失败模块的代码.
如果您需要一个已包含在代码前面某处的模块,也会发生这种情况.
这种说法是错误的.
由于节点的异步性质,文件"尚未"需要
require是同步的.这是不可能的.
正确的是,如果模块A需要B,而这又需要A,那么A将undefined在模块中B.但我不确定这是不是问题.
Jes*_*ris -1
你确定里面的文件正确吗?console.log(require('./errors/Error132')) 显示什么?Error132 和 Error133 文件的内容是什么?
| 归档时间: |
|
| 查看次数: |
8686 次 |
| 最近记录: |