router.get('/', function(req, res) { pool.getConnection(function (err,connection) { var sql1 = 'SELECT * FROM apply order by aid DESC limit 1'; connection.query(sql1, function (err, result) { string=JSON.stringify(result); var project=JSON.parse(string); }); res.render('input3', {project:project}); })}); 如题,我需要在res.render中引用proiect,请问怎么才能在函数外得到project的值?(因为要获取不同数据表的值,所以res.render不能放在query回掉函数里面)
1 回答

一只斗牛犬
TA贡献1784条经验 获得超2个赞
这个查数据库应该是个异步的吧,既然是异步就不能写在外面,你还没查出了就res
了
只能把res
写在里面
用个全局变量接受也没用,异步的
你想要查两张表再res
,可以在第一张查完之后的回调里面再查第二张,再在第二张回调里面res
,不过效率低
或者封装成promise
用promise.all
所有异步结束执行 res
或者用co
模块 可以异步改同步写法
添加回答
举报
0/150
提交
取消