如何在javascript函数外引用函数内变量?

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回掉函数里面)

阅读 4.1k
4 个回答

这个查数据库应该是个异步的吧,既然是异步就不能写在外面,你还没查出了就res
只能把res写在里面
用个全局变量接受也没用,异步的
你想要查两张表再res,可以在第一张查完之后的回调里面再查第二张,再在第二张回调里面res,不过效率低
或者封装成promisepromise.all所有异步结束执行 res
或者用co模块 可以异步改同步写法

你把 res.render() 放在回掉函数里面就可以了啊

1、你在内部project前面加一个self.,然后调用的时候{project:self.project}
2、在内部函数再定义一个函数,return这 函数,这个被return的函数里面return 这个project,然后用变量接受,说白了,就是利用闭包

function x(){
    //window.xx=0;
    //xx=0;
}
x();
console.log(xx);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题