node.js中找不到模块错误

时间:2013-04-23 07:14:14

标签: javascript node.js

我是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的指示更改我的文件夹结构,如下所示:

  • 项目
    • SRC
      • utils - utils.js
  • main.js

我的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)

3 个答案:

答案 0 :(得分:5)

根据您在问题中提到的文件夹结构,您必须尝试

require('../utils/utils.js')

如果项目文件夹的结构类似于

,则会出现这种情况
  • PROJ
    • SRC
      • utils的
        • utils.js
        • main.js

你正在做node main.js

对您问题中提供的详细信息发表评论。

  1. 请不要使用require(c:/demo/proj/src/utils/utils.js);,因为您已经尝试过了。想象你要将proj文件夹与项目文件一起导出,那么提到的要求就是错误。

  2. 此外,文件夹结构可以是

    • PROJ
      • SRC
        • utils的        - utils.js
      • main.js
      • 的package.json
  3. 以便将主文件保存在项目文件夹的根目录中。并要求像

    这样的utils.js
     require('./src/utils/utils.js')
    

    更新

    至于ican从更新的错误消息中看到。它仍然是require中'utils.js'路径的问题。从您更新的文件夹结构似乎main.jsproj文件夹处于同一级别,请参阅建议的文件夹结构main.jssrc文件夹位于{{1}内的同一级别1}}文件夹。

    即使这是我做的一个建议,因为你正在遵循一个文件夹结构,dint有意义。只需proj即可解决您的问题,甚至无需更改您在开头提到的文件夹结构。

答案 1 :(得分:3)

使用:require('./utils.js');。这是从位于所需模块文件夹中的文件中要求模块的正确方法。

您必须提供相对或绝对路径,我猜utils.js不在您的根目录中,因此require('/utils.js');不是正确的路径。

示例:

想象一下,您在同一文件夹中有两个文件utils.jsmain.jsutils.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."