我正在开发我的第一个Node.js应用程序。一切都找到了,但现在应用程序越来越大了。我想将应用分成不同的文件。所以,我使用了"要求"将应用程序划分为文件的方法。
但我的应用程序显示"找不到模块"。
** Call Ordering **
A.js is call B.js <-- call is ok
B.js is call C.js <-- Cannot Find module, B.js can't call 'test222 function'
我的示例代码。
a.js
...
var m=require('./controller/b.js');
m.register(req,res);
b.js
exports.register=function(){
var MyModule=require('./model/c.js');
console.log(MyModule.test222()); <--------- cannot find module
};
c.js
exports.test222=function() {
return "c.js";
};
帮帮我或建议。谢谢。 我想在另一个模块中调用模块。但我的节点应用程序不能用于&#34;找不到模块&#34;。怎么解决?
答案 0 :(得分:1)
您似乎错误地写了var m=require('./controller/a.js');
而不是var m=require('./controller/b.js');
如果是这样,我可以看到你有以下文件结构:
./a.js
./controller/b.js
./model/c.js
所以你运行需要./a.js
的{{1}},它运行正常。但是当./controller/b.js
需要./controller/b.js
时,Node会将./model/c.js
解析为c.js
,因为each module is relative to the file calling require()
。
这就是发生错误的原因。
要解决此问题,您应该替换
./controller/model.js
与
var MyModule=require('./model/c.js');
答案 1 :(得分:0)
require函数自动搜索node_modules文件夹中的模块 只需用js键入模块的名称即可。扩展
var b=require('b.js');
var c=require('c.js');
但是如果您对node_modules文件夹的结构进行了更改,则需要通过编辑来使用相对的waie导航到您的模块
"../"
从子目录导航到父目录和
"./"
从父目录导航到子目录 你需要尊重相对的方式。