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

时间:2017-04-06 16:19:58

标签: node.js mongodb npm

我当前在服务器上成功运行了一个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$

19 个答案:

答案 0 :(得分:24)

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

答案 1 :(得分:5)

经历了这么多的链接和线程,一遍又一遍地感到沮丧,我去了基础和繁荣!它有所帮助。我只是做了:

npm install

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

答案 2 :(得分:3)

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

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

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

答案 3 :(得分:2)

我也遇到过这个问题,因为我打开了另一个运行应用程序的控制台窗口,我试图在另一个控制台窗口中重新启动纱线启动。

第一根纱线阻止了第二根纱线的写入。所以我刚刚杀死了第一个进程并且它正常工作

答案 4 :(得分:2)

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

可能对某人有帮助。

答案 5 :(得分:2)

如果没有布局文件夹。只需在路由中使用以下内容:

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

在此处更改您的文件夹名称,希望它能解决您的错误。

答案 6 :(得分:2)

伙计们我整天都在面对这个问题,现在只需将MSBuild.exe文件复制粘贴到 C:\ Program Files(x86)\ Microsoft Visual Studio \ 2019 \ Preview中即可解决\ MSBuild \ Current \ Bin C:\ Program Files(x86)\ Microsoft Visual Studio \ 2019 \ Preview \ MSBuild \ 15.0 \ Bin。

我尝试了该线程中所有建议的方法,但均无效。如果有人碰巧立即遇到此问题,请使用 npm install --global --production Windows-build-tools --vs2019或--vs2017 。 并复制粘贴exe文件。

答案 7 :(得分:1)

运行

npm run scss
npm run start 

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

答案 8 :(得分:1)

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

答案 9 :(得分:1)

就我而言,问题是在我从git分支切换到另一个分支之后发生的,对某些旧文件的引用保留在“ node_modules / .cache”目录中的脚本中。
删除“ node_modules”,“ build”目录和“ package-lock.json”文件,然后发出“ npm install”命令为我解决了该问题

答案 10 :(得分:0)

如果打开了两个终端,请关闭其中一个并键入npm install。这会将缺少的软件包安装到您的package.json中。之后,您的项目应该可以编译并正常工作。

答案 11 :(得分:0)

92%的其他资产处理脚本-webpack-plugin×wdm」:错误:ENOENT:没有此类文件或目录,请打开。...==>如果有人遇到此类错误,则应执行以下操作: 1)您应该检查angular.json文件中的文件路径是否正确。

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

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

答案 12 :(得分:0)

@olleh 之所以有效,是因为npm install将在执行该文件的当前路径中创建一个node_modules目录。因此,在使用文件服务器系统模块时,当您声明

const fs = require('fs')

这可以从node_modules文件夹的顶级目录中找到文件。

答案 13 :(得分:0)

就我而言

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

给我错误。

我通过更改地址来解决此问题:

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

答案 14 :(得分:0)

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

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

答案 15 :(得分:0)

确保您的 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

答案 16 :(得分:-1)

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

答案 17 :(得分:-1)

这件事发生在我身上。我错误地删除了一些CSS文件,然后将其复制回去。该错误当时出现了。因此,我重新启动了所有泊坞窗和其他服务器,然后它消失了,也许这对某些人有所帮助:)

答案 18 :(得分:-3)

我尝试了一些操作并收到此错误错误:ENOENT:没有此类文件或目录,请打开'D:\ Website \ Nodemailer \ Nodemailer-application \ views \ layouts \ main.handlebars'

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