繁体   English   中英

Nodejs Mysql:在另一条路由中访问变量

[英]Nodejs Mysql: Accessing variable in another route

我正在构建一个简单的电子钱包系统,该系统可以接收用户的电话号码并从数据库中查询用户的钱包并显示余额; 我建立了一个接收电话号码的表格,并使用该号码查询数据库中的用户ID,并使用该ID查询他/她的电子支付钱包ID,但是我无法将钱包传递给获取请求以呈现钱包余额和用户名

router.post('/',function (req, res, next) {
  var sql = `SELECT UsrID FROM users WHERE UsrPhone =  ${req.body}`;
  var query = connection.queryValue(sql, function (err, userid) {
    if(err) throw err;
    console.log('User ID: ' + userid);

    var sql = `SELECT * FROM wallet WHERE UserID = ${userid}`;
    var query = connection.queryRow(sql, function (err, wallet) {
      if(err) throw err;
      console.log('WalletID: ' + wallet.WalletID);
      //send walletID to get route
      res.redirect('/wallet/:id');
    });
  });
});

router.get('/wallet/:id', function (req, res, next) {
  var sql = `SELECT * FROM wallet WHERE WalletID = ${wallet.WalletID}`;
  var query = connection.queryRow(sql, function (err, wallet) {
    if(err) throw err;
    res.render('wallet', {title: 'Wallet', wallet});
  });
});

但它似乎不起作用

您没有将当前的WalletID传递给重定向路由。 您应该传递id来重定向URL,如下所示:

res.redirect('/wallet/' + wallet.WalletID);

因此, wallet/:id可以获取当前的WalletID并在此基础上进行查询。

您可以像这样运行查询:

  var sql = `SELECT * FROM wallet WHERE WalletID = ${req.params.id}`;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM