0

Meteor コレクション内に含まれるデータを「強化」するように設定された関数を Meteor アプリケーションに作成しました。この関数は、コレクションを反復処理し、fullcontact APIを利用して、データベース内に保持されているすべてのクライアント エントリ (つまり、LinkedIn の経歴、従業員数など) に関する追加データを取得することを目的としています。

この問題は、コレクション内のすべての要素ですべてのデータポイントが利用できるわけではないという事実に関連しています (たとえば、クライアントが LinkedIn プロファイルを持っていない可能性があります)。この関数は最初の 2 つの要素に対して機能しますが、最終的に をスローして失敗します。これは、 に会社の LinkedIn プロフィール バイオが含まれていないためです (この特定の例の場合) TypeError: Cannot read property '2' of undefineddata variable

トレーニングとして何をお勧めしますか?何か案は?あなたの助けに感謝します - 私はこれに数時間かかりました.

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')
      }
    }
  }
});
4

1 に答える 1