99

我有一个 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$
4

22 回答 22

73

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

于 2017-04-06T16:23:01.993 回答
52

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

npm install

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

于 2018-06-16T21:15:26.520 回答
18

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 并重新运行项目。

于 2019-06-27T16:10:25.417 回答
14

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

const fs = require('fs')
于 2019-05-07T23:27:40.407 回答
10

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

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

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

于 2020-06-15T22:55:54.483 回答
6

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

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

于 2018-05-15T08:24:51.863 回答
5

如果没有布局文件夹。只需像这样使用您的路由:

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

在这里用你的文件夹名称改变一些东西,希望它能解决你的错误。

于 2020-06-27T06:10:38.303 回答
4

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

于 2020-05-18T12:29:31.753 回答
4

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

可能对某人有帮助。

于 2021-03-24T10:06:26.140 回答
3

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

npx create-react-app [app-name]

下一次运行:

sudo npm install

使其安装所有依赖项

包.json

然后运行:

sudo npm start

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

于 2021-12-05T18:23:08.373 回答
2

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

于 2020-06-13T17:58:52.807 回答
2

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

于 2020-11-02T15:27:26.180 回答
2

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

于 2021-06-24T05:17:42.163 回答
1

跑步

npm run scss
npm run start 

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

于 2020-03-11T11:44:24.747 回答
1

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

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

于 2020-12-28T19:46:30.917 回答
1

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

于 2021-11-15T13:30:42.727 回答
0

如果您在项目中使用 expres.js 时遇到同样的错误,这对我有用:

在我的项目中,当我运行一个快速应用程序时,我注意到当前工作目录是项目的根目录(当我试图读取位于脚本目录中的文件时)。它无法运行该文件,因为process.cwd() !== __dirname.

您可以检查它并process.cwd()在您尝试读取 json 文件的脚本中进行控制台登录。

我只是将路径更改为:

const fs = require('fs');
fs.readFileSync(`${__dirname}\\FILENAME`);
于 2022-01-29T20:20:42.233 回答
0

我有一个节点版本不匹配,通过 nvm 安装正确版本的节点工作

于 2022-02-08T16:48:35.017 回答
0

我使用 vsc、git 和 nrwl,并且经常遇到 vsc 执行自动登台的问题。与 nrwl 结合使用时,它经常会出现问题。简单地在 vsc 中取消暂存文件通常会有所帮助。

于 2022-02-25T12:36:35.533 回答
-1

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

于 2019-04-03T11:35:22.313 回答
-1

就我而言

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

给了我错误。

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

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

于 2019-04-24T13:40:25.477 回答
-2

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

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

于 2020-05-25T19:53:00.010 回答