[英]Passing a JavaScript property to variable - 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()
}
};
同样,如果我从.where调用中将userEmail换成静态电子邮件地址,则可以正常工作。 有了变量,什么都没有。 救命?
归功于Mariano Iglesias 。 返回的对象是一个数组。 userInfo [0] .email正确将电子邮件传递回API。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.