停止脚本的执行

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

我正在使用快速应用程序,我希望脚本只在 URL 上执行一次

我试过这个

app.get("/api/user/med", (req, res) => {
  try {
      console.log(req.query.name)
      const { name } = req.query;
      const { expy } = req.query;
      const { quan } = req.query;
      const { place } = req.query;
      console.log(name)
      var sql =
        "INSERT INTO medicine (med_name, expiry, quantity, place) VALUES ($1, $2, $3, $4)";
      var values = [name, expy, quan, place];
      if (name != null && name != undefined){
      console.log(req.query)
      req.query = ""
      req.url = req.query
      console.log(req.url)
      const putMed = client.query(sql, values, (err, result) => {
        if (err) throw err;
        getAllMed(res);
      });
      putMed;
    }
  } catch (err) {
    res.status(500).send(err);
  }
});

但是当我刷新页面时,它会再次插入,所以我怎样才能阻止它呢?

提前致谢。

node.js express
1个回答
0
投票

刷新自然会再次请求相同的 URL,这将再次调用您的路由。这就是它应该做的。

对于初学者来说,您正在根据 GET 请求修改数据库。那不是你应该做的。您应该使用 POST、PUT 或 PATCH,具体取决于您所做更改类型的详细信息。如果您不熟悉 GET、PUT、POST 等的标准用法...您可以在很多网站上阅读有关如何正确使用这些内容的信息。一般主题称为 REST(表征状态转移),这里有关于它的一篇文章。您可以搜索有关该主题的更多参考资料。

总结如下:

  • GET:检索资源或资源集合。
  • POST:创建新资源或提交数据进行处理。
  • PUT:通过用新数据替换现有资源来完全更新现有资源。
  • PATCH:通过特定更改部分更新资源。
  • 删除:删除资源。
© www.soinside.com 2019 - 2024. All rights reserved.