Express项目报错ENOENT:找不到指定文件或目录求助
解决ENOENT文件找不到错误的方案
嘿,我一眼就发现问题出在哪了!
错误原因
你遇到的Error: ENOENT: no such file or directory是因为路径拼接时缺少了目录分隔符。__dirname会返回当前脚本(server.js)所在的绝对路径,也就是D:\awesome-test,但你直接把它和index.html拼接成__dirname + 'index.html',结果就变成了D:\awesome-testindex.html——系统自然找不到这个不存在的文件。
修复方案
有两种简单的解决办法:
方法1:手动添加路径分隔符
直接在__dirname和文件名之间加上斜杠:
app.get('/', function(req, res) { res.sendFile(__dirname + '/index.html'); });
方法2:用Node.js内置的path模块(更推荐,跨平台友好)
path.join()会自动根据操作系统使用正确的路径分隔符(Windows用\,Linux/macOS用/),避免手动拼接出错:
// 先引入path模块 const express = require('express'); const path = require('path'); // 新增这一行 const app = express(); app.get('/', function(req, res) { res.sendFile(path.join(__dirname, 'index.html')); // 用path.join拼接路径 }); app.listen(8080); console.log('Server has started!');
这样修改后,路径就会正确生成为D:\awesome-test\index.html,系统就能找到你的index.html文件啦!
内容的提问来源于stack exchange,提问作者jammy
相关产品推荐
相关产品推荐

