res.render() 到不同的 URL 不工作

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

我正在尝试根据删除响应的状态代码呈现带有错误消息的 H1 标签。唯一的问题是,我所有的 UI 都在 /todo/:filename 端点中,所以渲染是有意义的,因为它是在 /todo/:filename/:todoId 端点上完成的。

有没有办法将 html 渲染到不同的 URL?

这是我获取和删除请求的代码:

app.get("/todo/:filename", (req, res) => {
  try {
    const { filename } = req.params;
    globalFilename = filename;
    const readPath = path.join(__dirname, `/todo/${filename}`);
    var data = JSON.parse(fs.readFileSync(readPath));
    data = data.map((obj) => ({ ...obj, filename }));
    if (res.statusCode !== 200) {
      res.render("todo-list", { data, filename: filename, failed: true });
    }
    res.render("todo-list", { data, filename: filename, failed: false });
  } catch (error) {
    console.log(error);
  }
});

app.delete("/todo/:filename/:todoId", (req, res) => {
  const { todoId, filename } = req.params;
  const readPath = path.join(__dirname, `/todo/${filename}`);
  var data = JSON.parse(fs.readFileSync(readPath));
  data.splice(todoId, 1);
  fs.writeFile(readPath, JSON.stringify(data), function (err) {
    // if (err) {
    res.write("<h1>Error<h1>");
    // }
    // res.json({ message: "successfully removed!" });
  });
});

编写更好代码的任何技巧也非常感谢,谢谢!

javascript express ejs
© www.soinside.com 2019 - 2024. All rights reserved.