在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.jsutils.js位于c:\demo\proj\src\utils\utils.js

我试过下面的需要组合,但我仍然无法find模块错误:

  • 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) 

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

 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

以便将主文件保存在项目文件夹的根目录下。 并需要像utils.js一样

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

UPDATE

至于ican从更新的错误消息看。 它仍然是“utils.js”path中的要求。 从你更新的文件夹main.js看来, main.jsproj文件夹处于同一级别,请参阅build议的文件夹结构在proj文件夹内有同一级别的main.jssrc文件夹。

即使这是一个build议,我所做的,因为你正在按照一个文件夹结构,力的意义。 只require('../utils/utils.js')就可以解决你的问题,甚至不用改变你刚才提到的文件夹结构。

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

你必须提供一个相对或绝对path我猜utils.js不在你的根目录下,因此require('/utils.js'); 不是正确的道路。

例:

想象一下你在同一个文件夹中有两个文件utils.jsmain.js utils.js的内容是:

utils.js

 exports.foo = function () { console.log('foo'); }; 

为了从utils.js中的main.js调用foo ,你应该使用:

main.js

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