查询参数在把手中不起作用

Query params are not working in handlebars

这是我的代码:

    app.get("/editar-equipo?:id", (req, res) => {
    
    const equipos = obtenerEquipos()
    let equipoSeleccionado 
    
    for(let i = 0; i < equipos.length; i++){
        if(equipos[i].numeroId === Number(req.query.id)){
            equipoSeleccionado = equipos[i]
        }
    }
    
    

res.render("edit-team", {
        layout: "header", 
           data: {
               equipoSeleccionado
        }
    })
})

我的车把 html 是

 <td>
    <form id="editar-equipo" method="GET" action="/editar-equipo?id={{equipo.numeroId}}">
      <button type="submit" class="btn btn-warning">Editar</button>
    </form>
  </td>

并且按钮创建得很好:

<form id="editar-equipo" method="GET" action="/editar-equipo?id=58">
      <button type="submit" class="btn btn-warning">Editar</button>
    </form>

但是当我点击按钮时它不起作用。它加载

> http://localhost:3030/editar-equipo?

但是如果我在 url 栏中手动写入 http://localhost:3030/editar-equipo?id=58 它可以正常工作并且团队可以正常加载。

有什么帮助吗?是否缺少任何其他参数?或者类似的东西?

我正在使用 express-handlebars 和 express

我已经测试了你的案例。浏览器删除问号后的所有查询。因此,您需要在 form 元素中放置一个隐藏的 input

<form id="editar-equipo" method="GET" action="/editar-equipo">
    <input type="hidden" name="id" value="58">
    <button type="submit" class="btn btn-warning">Editar</button>
</form>