我正在构建一个简单的电子钱包系统,该系统可以接收用户的电话号码,并从数据库中查询用户的钱包并显示余额;我建立了一个接收电话号码的表格,并使用该号码查询数据库中的用户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});
});
});
但它似乎不起作用
答案 0 :(得分:1)
您没有将当前的WalletID
传递给重定向路由。您应该传递id来重定向URL,如下所示:
res.redirect('/wallet/' + wallet.WalletID);
因此,wallet/:id
可以获取当前的WalletID
并以此为基础进行查询。
您可以这样运行查询:
var sql = `SELECT * FROM wallet WHERE WalletID = ${req.params.id}`;