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。在哪里打电话给电子邮件地址,它工作得很好。随着变量,什么都没有。帮帮我?
userInfo.Email是否会返回您所期望的内容? –
我建议你在每个函数中插入一个'console.log(userEmail);',看看它的初始值是什么和/或它在哪里丢失。我没有看到明显的错误。 – jfriend00
嗯,好问题。我刚刚添加了console.log(userInfo.email);并且它返回为undefined – Saqbach