如何在从节点模块导入的函数的Azure函数中执行函数回调?

时间:2017-06-05 01:08:04

标签: node.js azure

过去几天我花了几个小时试图找出如何进行回调以从我从节点模块导入的函数中获取数据,并将其与context.res一起用于azure函数。

我不太了解回调,无法理解这一点,或者我完全偏离了基础。

module.exports = function (context, req) {

var QuickBooks = require('node-quickbooks')
var qboAuth = require('./config')
var consumerKey = qboAuth.consumerKey
var consumerSecret = qboAuth.consumerSecret
var oauthToken = qboAuth.token
var oauthTokenSecret = qboAuth.tokenSecret
var realmId = qboAuth.realmId

    var qbo = new QuickBooks(consumerKey,
                         consumerSecret,
                         oauthToken,
                         oauthTokenSecret,
                         realmId,
                         false, // use the sandbox?
                         true); // enable debugging?
                
    
    qbo.getAccount(req.query.id, function(err, account) {
            context.log(account)
            
    } );
    
context.res = {
    body: account
}
     

context.done()
}

所以qbo.getAccount()函数中的context.log(account)输出正常,但是通过这种方式我使用的是无法将其输出到context.res = {}。

我认为在Azure Function沙箱中运行会很复杂,但我不确定。

有人能够指出我正确的方向吗?

谢谢,

1 个答案:

答案 0 :(得分:0)

函数getAccount()应该是一个异步函数,您可以将Azure函数的赋值和完整函数移动到回调表达式中。 E.G。

qbo.getAccount(req.query.id, function(err, account) {
    context.log(account);
    context.res = {
        body: account
    }
    context.done() 
    } 
);