首页 > 解决方案 > 在 nodejs 中的 app.post 到 app.get 之间传递数据

问题描述

我对 nodejs 和 express 还很陌生。我正在使用 nodejs 和车把来创建一个简单的后端 CRUD 应用程序。现在我被困在如何将值从我在车把中创建的表单传递到我的 index.js 文件中的 app.get 函数,所以在我的 app.get 函数中,我可以使用该值进行数据库查询。完成查询后,我想使用 app.get 显示结果并将其呈现到网页。

这是我的车把代码:

<section id="main" class="wrapper">
    <div id="view" class="container">
        <section id="main" class="wrapper">
            <div id="class" class="container">
                <div class="card-body">
                    <form action="/getid/submit" method="POST">
                        <div class="form-group">
                            <label for="id"></label>
                            <input type="text" class="form-control" id="id" name="id"
                                placeholder="Enter ID">
                        </div>
                        <button type="submit" class="btn btn-primary">Enter ID</button>
                    </form>
                </div>
            </div>

        </section>

这是 index.js 中的 post 函数

     app.post('/getid/submit',(req,res)=>{
      const id = req.body.id;
      console.log(id);
      res.redirect('page1');
      });

这是 app.get 函数:

app.get('/view/id',(req,res)=>{
  
    //id = ?
    var sql = `SELECT * FROM class WHERE Id =${id}`;
    db.query(sql,function (err,result){
        if(err) throw error;
        res.render('page2',{title: 'test', items: rows})
    });

});

我的主要问题是如何将我从 app.post 表单获得的值传递给我的 app.get 函数,以便我可以使用该 ID 运行查询并将值呈现给网页。先感谢您。

标签: node.jshandlebars.jsexpress-handlebars

解决方案


id您需要实现的是在请求参数中。所以你应该尝试:

app.get('/view/:id', (req, res) => {
  //id = ?
  const id = req.params.id

  var sql = `SELECT * FROM class WHERE Id =${id}`;
  db.query(sql, function (err, result) {
    if (err) throw error;
    res.render('page2', { title: 'test', items: rows })
  });
});

推荐阅读