错误:ENOENT:Next.js 中没有这样的文件或目录

问题描述 投票:0回答:1

我正在尝试从 Next.js 中的 API 路由更改 JSON 文件中的数据。

import fs from "fs/promises";
import path from "path";

export async function ReplaceData(index, data) {
  try {
    const filePath = path.join(__dirname, "data.json");

    const existingData = await fs.readFile(filePath, "utf-8");
    const tempData = JSON.parse(existingData);

    tempData[index] = data;
    console.log("Reading Works: ", tempData);

    await fs.writeFile(filePath, JSON.stringify(tempData, null, 4));

    console.log("File successfully written!");
  } catch (error) {
    console.error("Error: ", error);
  }
}

这是我执行此操作的函数,但我收到错误消息

[Error: ENOENT: no such file or directory, open 'C:\Users\JoMaK\OneDrive\Desktop\Website\doctor_website\data.json'] {
  errno: -4058,
  code: 'ENOENT',
  syscall: 'open',
  path: 'C:\\Users\\JoMaK\\OneDrive\\Desktop\\Website\\doctor_website\\data.json'
}

data.json
文件位于同一文件夹中,但从不在该文件夹中的 API 路径调用该函数。

我已经尝试更改 JSON 文件的位置,并且还尝试使用相对路径作为文件路径,但都不起作用。

javascript node.js json next.js
1个回答
0
投票

如果您想检查文件路径是否正确。 我建议 console.log(__dirname) 然后将其与文件的位置进行比较。

如果两者位于同一位置,请尝试读取文件并记录其数据。

如果这两个步骤都正确,您将能够写入文件。确保

filePath
与文件的位置匹配。

除此之外,我在代码中没有看到任何错误

© www.soinside.com 2019 - 2024. All rights reserved.