我正在尝试从 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 文件的位置,并且还尝试使用相对路径作为文件路径,但都不起作用。
如果您想检查文件路径是否正确。 我建议 console.log(__dirname) 然后将其与文件的位置进行比较。
如果两者位于同一位置,请尝试读取文件并记录其数据。
如果这两个步骤都正确,您将能够写入文件。确保
filePath
与文件的位置匹配。
除此之外,我在代码中没有看到任何错误