我是node.js的新手,这是我的第一个节点应用程序所以,请原谅我,如果我提出明显的问题。我有一个名为utils.js
的文件,我需要在main.js
中提供该文件中定义的函数。所以我试着给予
require(utils.js)
但它给我这个错误:
Error: Cannot find module 'utils.js'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:364:17)
at require (module.js:380:17)
我的main.js
位于c:\demo\proj\src\main\main.js
下,utils.js
位于c:\demo\proj\src\utils\utils.js
下。
我尝试过以下需要组合,但我仍然无法找到模块错误:
require(/proj/src/utils/utils.js
);
require(/utils.js
);
require(c:/demo/proj/src/utils/utils.js
); 即使我尝试将其放在node_modules
文件夹下,但仍然是同样的错误。你能不能指导我在这里搞错了什么?
修改
我尝试按照@mithunsatheesh的指示更改我的文件夹结构,如下所示:
我的require
如下:require('./src/utils/utils.js')
但是当我执行node main.js
时,我仍然遇到错误:
Error: Cannot find module './src/utils/utils.js'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:364:17)
答案 0 :(得分:5)
根据您在问题中提到的文件夹结构,您必须尝试
require('../utils/utils.js')
如果项目文件夹的结构类似于
,则会出现这种情况你正在做node main.js
对您问题中提供的详细信息发表评论。
请不要使用require(c:/demo/proj/src/utils/utils.js);
,因为您已经尝试过了。想象你要将proj
文件夹与项目文件一起导出,那么提到的要求就是错误。
此外,文件夹结构可以是
以便将主文件保存在项目文件夹的根目录中。并要求像
这样的utils.js require('./src/utils/utils.js')
至于ican从更新的错误消息中看到。它仍然是require中'utils.js'路径的问题。从您更新的文件夹结构似乎main.js
与proj
文件夹处于同一级别,请参阅建议的文件夹结构main.js
和src
文件夹位于{{1}内的同一级别1}}文件夹。
即使这是我做的一个建议,因为你正在遵循一个文件夹结构,dint有意义。只需proj
即可解决您的问题,甚至无需更改您在开头提到的文件夹结构。
答案 1 :(得分:3)
使用:require('./utils.js');
。这是从位于所需模块文件夹中的文件中要求模块的正确方法。
您必须提供相对或绝对路径,我猜utils.js
不在您的根目录中,因此require('/utils.js');
不是正确的路径。
示例:强>
想象一下,您在同一文件夹中有两个文件utils.js
和main.js
。 utils.js
的内容是:
<强> utils.js 强>
exports.foo = function () {
console.log('foo');
};
要从foo
utils.js
拨打main.js
,您应该使用:
<强> main.js 强>
require('./utils.js').foo();
答案 2 :(得分:1)
首先,检查您当前的文件夹。您在正确的文件夹中吗?
如果(是) 那么这个答案不适合你可以离开并走得更远
如果(不确定 || 否)
cd "your folder name."
node "your file name.js."