无法访问在连接中声明的变量.query 函数



我是由于查询而产生的,并将其存储在一个我将通过渲染中发送的变量,但是它给出错误变量的问题尚未定义。请帮助我。如果可能的话,请纠正代码。

router.get('/create',(req,res)=>{
        connection.query('SELECT * FROM purchases',function(error,results,fields){
            var voucher = 'PH-'+results.length+1;
            connection.query('SELECT * FROM vendors where wid=?',[req.session.w_id],function(err,res,f){
                var vendors=res;
                connection.query('SELECT * FROM products where wid=?',[req.session.w_id],function(er,r,fi){
                    var products=r;

                })
            })
        });
        res.render('purchase_create',{voucher:voucher,vendors:vendors,products:products});  
});

错误是:未定义凭证

voucher仅在您传递给connection.query的回调函数中可用,而vendorsproducts也是如此。您必须将res.render调用移动到内部最多的功能才能使这项工作:

router.get('/create', (req, res) => {
  connection.query('SELECT * FROM purchases', function (error, results, fields) {
    var voucher = 'PH-' + results.length + 1;
    connection.query('SELECT * FROM vendors where wid=?', [req.session.w_id], function (err, res, f) {
      var vendors = res;
      connection.query('SELECT * FROM products where wid=?', [req.session.w_id], function (er, r, fi) {
        var products = r;
        res.render('purchase_create', { voucher: voucher, vendors: vendors, products: products });
      });
    });
  });
});

连接对象的'查询'方法需要一个回调函数,每当三个事件触发的任何一个都将执行 - 错误,字段,结果,此处以参数err,场和行分别。

router.get('/create', (req, res) => {
  connection.query('SELECT * FROM purchases', function (error, results, fields) 
  {
    if (error) throw error;
    var voucher = 'PH-' + results.length + 1;
    connection.query('SELECT * FROM vendors where wid=?', [req.session.w_id], function (err, res, f) 
    {
         if (err) throw err;
         var vendors = res;
         connection.query('SELECT * FROM products where wid=?', [req.session.w_id], function (er, r, fi) 
         {
             if (er) throw er;
             var products = r;
             res.render('purchase_create', { voucher: voucher, vendors: vendors, products: products });
        });
     });
  });
});

最新更新