如何解决Nodejs:错误:ENOENT:没有这样的文件或目录

Posted

技术标签:

【中文标题】如何解决Nodejs:错误:ENOENT:没有这样的文件或目录【英文标题】:How to resolve Nodejs: Error: ENOENT: no such file or directory 【发布时间】:2017-09-01 19:21:27 【问题描述】:

我有一个 Nodejs Web 应用程序当前在服务器上成功运行。现在我正在尝试在我的开发服务器上设置一个本地副本。

我目前安装了 Nodejs、NPM 和 Mongo,就像我在生产服务器中安装的一样,但是当我尝试启动节点服务器时出现以下错误

什么可能导致此问题?

embah@devsertwo:~/node/nodeapp$ node app.js
fs.js:640
  return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode);
                 ^

Error: ENOENT: no such file or directory, open '/home/embah/node/nodeapp/config/c
onfig.json'
    at Error (native)
    at Object.fs.openSync (fs.js:640:18)
    at Object.fs.readFileSync (fs.js:508:33)
    at Object.<anonymous> (/home/embah/node/nodeapp/config/config.js:4:28)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)
    at Module.require (module.js:497:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/home/embah/node/glorby/app.js:13:16)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)
    at Module.runMain (module.js:604:10)
    at run (bootstrap_node.js:394:7)
    at startup (bootstrap_node.js:149:9)
    at bootstrap_node.js:509:3
embah@devsertwo:~/node/nodeapp$

【问题讨论】:

它抱怨缺少文件。您的系统中的正确位置是否有“/home/embah/node/nodeapp/config/c onfig.json”? 【参考方案1】:

我不知道是否有人会看到这个,但我会说出我的答案首先您需要位于使用以下命令创建的应用目录中:

npx create-react-app [app-name]

下一次运行:

sudo npm install

使其安装所有依赖项

package.json

然后运行:

sudo npm start

并确保使用 sudo 命令运行它们,因为有时这是绝对必要的。

【讨论】:

【参考方案2】:

如果您使用 typescript 进行编码,请记住 transpiled-JS 文件夹是 JS 搜索您的文件的位置,并且肯定无法找到您的 html 文件;因此出现这样的错误。因此,您需要将文件复制到 transpiledJS 文件夹中才能找到它。

【讨论】:

【参考方案3】:

确保您的 angular.json 文件具有如下“样式”和“脚本”数组(适用于 Angular 12 及更高版本)

"styles": [
          "src/styles.css",
          "./node_modules/bootstrap/dist/css/bootstrap.css"
        ],
"scripts": [              
          "node_modules/jquery/dist/jquery.min.js",
          "node_modules/bootstrap/dist/js/bootstrap.js"
        ]

完成后,按 CTRL + C 然后 ng serve

【讨论】:

【参考方案4】:

我在创建插件时遇到了ng-package.json 文件的问题。我发现我在angular.json 中提供了错误的路径。修复了我的文件路径,问题已解决。

可能对某人有帮助。

【讨论】:

【参考方案5】:

@olleh 答案有效,因为npm install 将在执行它的当前路径中创建一个node_modules 目录。因此,在使用文件服务器系统模块时,下面的声明从node_modules的***目录中定位文件。

const fs = require('fs')

【讨论】:

【参考方案6】:

[这是 multer github 上的一个有用链接][1]

但对我来说,我必须在服务器文件夹中创建一个公用文件夹,就像 -cb(null,'public/')。 [1]:https://github.com/expressjs/multer/issues/513

【讨论】:

【参考方案7】:

我在系统级别添加了 PM2_HOME 环境变量,现在它可以正常工作了。

【讨论】:

【参考方案8】:

如果没有布局文件夹。就这样使用你的路由:

app.get('/', (req, res) => 
    res.render('something',  layout: false );
)

在这里用您的文件夹名称更改一些内容,希望它能解决您的错误。

【讨论】:

【参考方案9】:

在我的情况下,问题是由使用从脚本执行的目录开始的文件路径引起的,而不是从项目的根目录开始。

我的目录结构是这样的: 项目文件夹/ ├── package.json ├── 脚本文件夹/ │ ├── myScript.js

我打电话给fs.createReadStream('users.csv'),而不是正确的fs.createReadStream('scriptFolder/users.csv')

【讨论】:

【参考方案10】:

我通过在出现错误的位置创建一个空白文件来解决此错误。如果您收到目录错误,您也可以尝试创建空目录。一切顺利。

【讨论】:

【参考方案11】:

我尝试了一些东西并得到了这个错误错误:ENOENT:没有这样的文件或目录,打开 'D:\Website\Nodemailer\Nodemailer-application\views\layouts\main.handlebars'

我得到的解决方法是按字面意思构建目录。这意味着完全按照显示的方式标记项目,奇怪的是我给了计算机它想要的东西。

【讨论】:

不是“我试过了”,你能解释一下你在做什么吗?答案中已经有很多例子了。如果您的答案真的很独特,请尝试解释原因,以便在寻找您答案的人中脱颖而出。【参考方案12】:

在我的情况下,问题发生在我从 git 分支切换到另一个分支后,对一些旧文件的引用仍保留在“node_modules/.cache”目录中的脚本中。 删除“node_modules”、“build”目录和“package-lock.json”文件然后发出“npm install”命令已经解决了我的问题

【讨论】:

谢谢。删除 package-lock.json 文件然后运行“npm install”帮助解决了我的问题。我的项目有一个本地项目依赖项,我最近删除了第二个项目的文件夹,然后重新克隆了存储库。【参考方案13】:

跑步

npm run scss
npm run start 

按照终端中的顺序为我解决了这个问题。

【讨论】:

如果您提供一些关于这些命令做什么(或应该做什么)的信息将会很有帮助。【参考方案14】:

92% 额外的资产处理脚本-webpack-plugin× 「wdm」: Error: ENOENT: no such file or directory, open....==> 如果有人遇到此类错误,您应该执行以下操作: 1)您应该检查 angular.json 文件中的文件路径是否正确。

 "scripts": [
          "node_modules/jquery/dist/jquery.min.js",
          "node_modules/bootstrap/dist/js/bootstrap.js"
        ],

2) 你应该按 crtl+c 并重新运行项目。

【讨论】:

最好检查相对于 angular.json 配置文件的路径。对我来说,我还必须添加根文件夹名称。 “脚本”:[“../MYROOTFOLDER/node_modules/jquery/dist/jquery.min.js”,“../MYROOTFOLDER/node_modules/bootstrap/dist/js/bootstrap.js”],【参考方案15】:

就我而言

import Object from '../config/env';

给了我错误。

我通过更改地址解决了这个问题:

import Object from './../config/env';

【讨论】:

【参考方案16】:

它发生在我身上。我错误地删除了一些css文件,然后复制回来。这个错误当时就出现了。所以我重新启动了我所有的码头工人和其他服务器,然后它就消失了,也许这对某人有帮助:)

【讨论】:

【参考方案17】:

在浏览了如此多的链接和线程并一次又一次地感到沮丧之后,我开始学习基础知识并繁荣!它有帮助。我只是做了:

npm install

我不知道,但它可能对某人有帮助:)

【讨论】:

这可能对某些人有用,但对我不起作用。 不像我的解决方案那么简单——电脑重启,在c:\windows\system中打开powershell,没想到我不在我的项目目录下! 我也遇到了同样的问题,它也对我有用。谁能解释一下为什么会这样?我知道 npm 正在搜索一些它没有找到的目录,但是为什么呢? 奇怪的是,npm install 导致全新安装时出现同样的错误,但 npm update 有效,随后的 npm install 也有效!【参考方案18】:

我也遇到了这个问题,因为我打开了另一个正在运行应用程序的控制台窗口,并且我试图在另一个控制台窗口中重新运行 yarn start。

第一个执行的纱线阻止了第二个纱线的写入。所以我只是杀死了第一个进程并且它起作用了

【讨论】:

因为 VS Code 的问题而遇到了这个确切的问题【参考方案19】:

您的应用程序期望在 /home/embah/node/nodeapp/config/config.json 找到一个文件,但该文件不存在(这就是 ENOENT 的意思)。因此,您要么需要创建预期的目录结构,要么配置您的应用程序,使其在正确的目录中查找config.json

【讨论】:

以上是关于如何解决Nodejs:错误:ENOENT:没有这样的文件或目录的主要内容,如果未能解决你的问题,请参考以下文章

错误:ENOENT,没有这样的文件或目录“未定义”

npm 错误! Windows_NT 6.1.7601:ENOENT:没有这样的文件或目录

Nodejs FS模块没有返回这样的文件或目录错误

如何解决此错误:ENOENT:没有此类文件或文件或目录,在本机错误时打开“/tmp/mt-1miyjxv/os.json”?

npm ENOENT 没有这样的文件或目录,打开 path/package.json

如何使用 nodejs child_process.spawn 捕获 ENOENT?