如何防止重新加载页面 fs.writeFileSync()

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

当我取消注释字符串 fs.writeFile 函数时,我无法阻止重新加载页面。当我的代码中没有此函数时,浏览器会保持其状态并且不会重新加载页面。 如何将我的文件放在本地目录中并在不重新加载的情况下使用它?

我尝试了不同的方式向客户端和服务器发送请求,尝试在目录中同步写入文件,但没有任何帮助。 我在 html 中有这样的表单代码:

<form id="metadata-form">
   <input type="file" id="file-input" required/>
   <button id="process-file-button" type="button">Check file</button>
</form>

这是我的客户代码:

document.getElementById("process-file-button").addEventListener("click", async (event) => {
    event.preventDefault(); 

    const formData = new FormData();
    const fileInput = document.getElementById("file-input");
    
    if (!fileInput.files.length) {
        alert("Выберите файл для загрузки!");
        return;
    }

    formData.append("file", fileInput.files[0]);

    try {
        const response = await fetch("http://localhost:3000/process-file", {
            method: "POST",
            body: formData,
        });

        if (!response.ok) {
            throw new Error("Error sending to server");
        }

        const result = await response.json();
        console.log(result)
    } catch (error) {
        console.error("Error:", error);
    }
});

以及服务器的一部分:

app.post("/process-file", async (req, res) => {
  if (!req.files || !req.files.file) {
    return res.status(400).json({ error: "Файл не загружен" });
  }
  

    const uploadedFile = req.files.file;
    const tempFilePath = path.join(__dirname, "uploads", uploadedFile.name);

   fs.writeFile(tempFilePath, uploadedFile.data, (err) => {
    if (err) {
        console.error("Ошибка при сохранении файла:", err);
        return res.status(500).json({ error: "Ошибка сохранения файла" });
    }
    console.log("Файл успешно сохранен:", tempFilePath);
    res.json("Success")
  });
});

如何将文件放入本地目录并在不重新加载的情况下使用它?

javascript file browser reload node.js-fs
1个回答
0
投票

不清楚问题出在哪里,您的客户端在 POST 请求上没有收到成功?

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