最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

如何回调结果Mysql + Nodejs

运维笔记admin83浏览0评论

如何回调结果Mysql + Nodejs

如何回调结果Mysql + Nodejs

我正在尝试从数据库中返回结果,根据我不得不使用回叫的某些文档,我正在尝试但结果仍然不确定,请帮助我

// app.js file
var db = require('./database');
var access_token;

db.page_access_token(page_id, function(err, content) {
    if (err) {
        console.log(err);
    } else {
        access_token = content;
        console.log(access_token); // response conrrect
    }
});
console.log(access_token); // response undefined

// database.js file
module.exports = {

    page_access_token : function(page, callback){
        conn.query('SELECT access_token FROM facebook_pages WHERE ?', {page : page}, function(err, row) {
            if (err) {
                callback(err, null);
            } else 
                callback(null, row[0].access_token);
        });
    }

}
回答如下:

数据库调用是异步的(完成执行需要时间)。您正在为回调中的access_token分配值,并且正在回调函数外部记录access_token变量。在这里,由于回调之外的console.log()在回调函数中的console.log()之前执行,因为它是异步操作,所以未定义access_token。如果您需要在回调之外使用access_token,请编写一个函数并将access_token作为参数传递给该函数。例如-

db.page_access_token(page_id, function(err, content) {
    if (err) {
        console.log(err);
    } else {
        access_token = content;
        doSomeWork(access_token);
        console.log("Access token in callback -->>"+ access_token); 
    }
});

function doSomeWork(acc_token){
   console.log("Access token in doSomeWork -->>"+ acc_token);
}

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论