我正在尝试在Express JS中访问文件夹当前目录之外的文件夹

问题描述

它们在我的文件夹中有两个文件夹,其中一个用于前端,一个用于后端

project
├── back-end
│   ├── public
│   └── routes
│       ├── Calling.js
│       └── index.js
└── front-end
    ├── public
    └── src
        └── Components
            └── Contact.js

从后端尝试使用sendFile()调用前端文件

app.get('/',function(req,res,next){
    
    res.sendFile(path.join(
        __dirname,'../back-end','/front-end/src/Components/Contact'
    ))
   
})

在运行(npm启动)时,该文件夹未切换回前端,它被视为后端文件夹,并且未显示此类文件目录

这是错误消息

ENOENT: no such file or directory,stat 'D:\Project\back-end\routes\front-end\contact-form\src\Components\Contact'

解决方法

Path.join不会合并两个文件的内容,而是将两个文件系统路径合并到一个路径中。

如果要合并两个文件的内容,则必须分别阅读每个文件的内容,然后将它们串联在一起。

您想要FS.readFile( path,options )

,

我通过使用

解决了这个问题
res.sendFile(path.format({
        dir: 'D:\\Project\\front-end\\src\\Components',base: 'Contact.js'
      }))

我在这里使用

(path.format({dir:'path_of_file',base:'name_of_file'}))