2015-11-21 36 views
0

我觉得自己犯了一个愚蠢的错误,但我正在忍受“太小不知道要寻找什么”综合症。将JavaScript属性传递给变量 - Node/Express

我有一个Node/Express应用程序,我在其中尝试调用mySQL DB并返回用户信息。然后,我试图将用户电子邮件传递给Infusionsoft API。

我可以成功地传递一个静态电子邮件,并且该过程可以工作,但是当我试图将值保存到变量时,它停止工作。

下面的代码:

路线:

router.get('/subscribers/:id', function(req, res, next) { 

    var userID = req.params.id; 
    subscriber.subscriberIndividual(userID, function(err, userInfo){ 
    var userEmail = userInfo.Email; 
    if (err) { 
     console.log(err); 
     return; 
    } 
     billing.infusionsoftDetails(userEmail, function(err, userBilling){ 
     if (err) { 
      console.log(err); 
      return; 
      } 
     console.log(userInfo); 
     console.log(userBilling); 
     res.render('subscribers/edit', { 
     'userInfo' : userInfo, 
     'userBilling' : userBilling 
     }); 
    }); 
    }); 

控制器:

infusionsoftDetails: function(userEmail, cb) 
    { 
     infusionsoft.subscriberDetails(userEmail).then(function(rows){ 
     cb(null, rows); 
     }) 
     .catch(function(err) 
     { 
     cb(err); 
     }); 
    } 

} 

型号:

subscriberDetails: function(userEmail) 
    { 
     return infusionAPI.RecurringOrderWithContacts 
     .where(
      RecurringOrderWithContact.Email, userEmail) 
     .select(
      RecurringOrderWithContact.ContactId, 
      RecurringOrderWithContact.Email, 
      RecurringOrderWithContact.FirstName, 
      RecurringOrderWithContact.LastName, 
      RecurringOrderWithContact.Phone1, 
      RecurringOrderWithContact.Status, 
      RecurringOrderWithContact.PaidThruDate, 
      RecurringOrderWithContact.NextBillDate, 
      RecurringOrderWithContact.BillingAmt, 
      RecurringOrderWithContact.StartDate, 
      RecurringOrderWithContact.EndDate 
      ) 
     .take(1) 
     .toArray() 
     .then() 
    } 


}; 

再次,如果我从换出USEREMAIL。在哪里打电话给电子邮件地址,它工作得很好。随着变量,什么都没有。帮帮我?

+0

userInfo.Email是否会返回您所期望的内容? –

+0

我建议你在每个函数中插入一个'console.log(userEmail);',看看它的初始值是什么和/或它在哪里丢失。我没有看到明显的错误。 – jfriend00

+0

嗯,好问题。我刚刚添加了console.log(userInfo.email);并且它返回为undefined – Saqbach

回答

0

积分为Mariano Iglesias。返回的对象是一个数组。 userInfo [0] .email将电子邮件正确地传递回API。