将JavaScript属性传递给变量-Node/Express

将JavaScript属性传递给变量-Node/Express,javascript,node.js,express,Javascript,Node.js,Express,我觉得我犯了一个愚蠢的错误,但我实在受够了,不知道该找些什么 我有一个Node/Express应用程序,在其中我试图调用mySQL数据库并返回用户信息。然后,我尝试将用户电子邮件传递到Infusionsoft API 我可以成功地传递一封静态电子邮件,并且该过程可以工作,但是当我试图将值保存到变量时,它停止工作 代码如下: 路线: router.get('/subscribers/:id', function(req, res, next) { var userID = req.para

我觉得我犯了一个愚蠢的错误,但我实在受够了,不知道该找些什么

我有一个Node/Express应用程序,在其中我试图调用mySQL数据库并返回用户信息。然后,我尝试将用户电子邮件传递到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从.where调用调出到一个静态电子邮件地址,它就可以正常工作。对于变量,什么都没有。帮助?

功劳归谁。返回的对象是数组。userInfo[0]。电子邮件会将电子邮件正确地传递回API

userInfo.Email是否会返回您期望的结果?我建议您插入一个console.loguserEmail;在每个函数中,查看它的初始值是什么和/或在哪里丢失。我没发现明显的错误。嗯,问得好。我刚刚添加了console.loguserInfo.email;而它回来的时候,未定义的日志用户信息工作。日志记录userInfo.email或userEmail返回未定义。这是返回的对象的外观:[{username:'randomuser',id:'4f9c4d15-3e7c-4f11-9d82-e6e0f6dabcde',电子邮件:'randomuser@gmail.com',活动:1,最后一次登录:周五2015年7月24日12:53:58 GMT-0400 EDT,创建时间:周六2012年4月28日20:03:33 GMT-0400 EDT}]