node fs.readFileSync读取文件报找不到路径

发布于 2022-09-11 15:02:47 字数 1434 浏览 22 评论 0

如图,server.js想读取public下的index.html文件,却报错。不太清楚是哪里出错了。代码在最下边

Error: ENOENT: no such file or directory, open '\public\index.html'
    at Object.openSync (fs.js:434:3)
    at Object.readFileSync (fs.js:339:35)
    at Object.eval (webpack:///./src/server/index.js?:27:19)
    at eval (webpack:///./src/server/index.js?:54:30)
    at Object../src/server/index.js (E:\Code\web\ssr\react-music\build\server.js:4673:1)
    at __webpack_require__ (E:\Code\web\ssr\react-music\build\server.js:20:30)
    at E:\Code\web\ssr\react-music\build\server.js:84:18
    at Object.<anonymous> (E:\Code\web\ssr\react-music\build\server.js:87:10)
    at Module._compile (internal/modules/cjs/loader.js:689:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)

clipboard.png

import express from 'express'
import routes from '../routes'
import serverRender from './render'
import fs from "fs";
import path from "path";
const app = express()
const template = fs.readFileSync(path.resolve(__dirname,"../public/index.html"),"utf8")
console.log(template);
app.use(express.static('public'))
app.get("*", (req, res) => {
  res.send(serverRender(req, routes))
})

app.listen(3000, () => {
  console.log('server listening on port 3000')
})

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

冷︶言冷语的世界 2022-09-18 15:02:47

我是这样解决的。process.cwd(): 总是返回运行 node 命令时所在的文件夹的绝对路径。看这个文章摸索出的解决办法:

  const template = fs.readFileSync(process.cwd() + '/public/static/index.html', 'utf8')
束缚m 2022-09-18 15:02:47
path.join(__dirname,"../public/index.html")
久隐师 2022-09-18 15:02:47

windows 系统
mac 系统下面,路径是对的哦

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文