16

我是 node.js 的新手,这是我的第一个 node 应用程序,所以如果我问的问题很明显,请原谅。我有一个名为的文件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

我尝试了以下要求组合,但仍然出现找不到模块错误:

  • require(/proj/src/utils/utils.js);

  • require(/utils.js);

  • require(c:/demo/proj/src/utils/utils.js);

即使我试图把它放在node_modules文件夹下,但仍然是同样的错误。你能指导我在这里做错了什么吗?

编辑:

我尝试按照@mithunsatheesh 的指出更改我的文件夹结构,如下所示:

  • 项目
    • 源代码
      • 实用工具 - 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)
4

3 回答 3

9

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

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

如果您的项目文件夹结构如下

  • 项目
    • 源代码
      • 实用程序
        • 实用程序.js
      • 主要的
        • main.js

你正在做node main.js

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

  1. 请不要require(c:/demo/proj/src/utils/utils.js);在试用时使用。想象一下,如果您正在导出proj包含项目文件的文件夹,那么提到的 require 将是一个错误。

  2. 文件夹结构也可以做成类似

    • 项目
      • 源代码
        • 实用工具 - utils.js
      • main.js
      • 包.json

这样您就可以将主文件保存在项目文件夹的根目录中。并需要 utils.js 之类的

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

更新

从更新的错误消息中可以看出。它仍然是require中'utils.js'路径的问题。从您更新的文件夹结构中,它似乎与文件夹main.js处于同一级别proj,请参阅建议的文件夹结构main.jssrc文件夹在文件夹内的同一级别proj

即使这是我在您遵循一个有意义的文件夹结构时提出的建议。只需require('../utils/utils.js')更改您在开头提到的文件夹结构即可解决您的问题。

于 2013-04-23T07:26:10.803 回答
4

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

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

例子:

想象一下,您有两个文件utils.js并且main.js在同一个文件夹中。的内容utils.js是:

实用程序.js

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

为了fooutils.jsin调用,main.js您应该使用:

main.js

require('./utils.js').foo();
于 2013-04-23T07:15:54.550 回答
1

首先,检查您当前的文件夹。你在正确的文件夹中吗?

如果(是)那么这个答案不适合你可以离开并走得更远

如果(不确定 || 否)

cd "your folder name." 
node "your file name.js."
于 2021-04-15T07:52:55.503 回答