我在 Meteor 应用程序中创建了一个函数,该函数设置为“丰富”流星集合中包含的数据。该函数旨在遍历集合,利用fullcontact API提取数据库中维护的所有客户条目的附加数据(即 LinkedIn Bio;员工人数等)。
问题在于并非所有数据点都可用于集合中的所有元素(例如,客户可能没有 LinkedIn 个人资料)。该函数适用于最初的几个元素,但最终无法抛出 a TypeError: Cannot read property '2' of undefined
,因为data variable
不包含公司的 LinkedIn 个人资料生物(对于这个特定示例)。
你有什么建议作为锻炼?有任何想法吗?非常感谢您的帮助-我已经在这工作了几个小时。
Meteor.methods({
enrichment() {
var fullcontact = new FullContact(Meteor.settings.fullContact);
for (var i = 1; i < customerDb.find({ company: "Qualify" }).count(); i++) {
var url = customerDb.findOne( { company: "Qualify", 'item.clientId': i.toString() } )['item']['contact_website'];
var data = fullcontact.company.domain(url);
if ( data['status'] == 200 ) {
customerDb.update ({
company: "Qualify", 'item.clientId': i.toString()
}, {
$push: {
bio: data['socialProfiles'][2]['bio'],
keywords: data['organization']['keywords'],
employees: data['organization']['approxEmployees'],
domesticTrafficRank: data['traffic']['topCountryRanking'][0],
globalTrafficRank: data['traffic']['ranking'][0]
}
});
} else {
console.log('Data could not be found on the company')
}
}
}
});