2016-12-04 1 views
1

Ich habe eine Reihe von Daten, die ich in einer Tabelle senden möchten NodeMailer verwenden, die etwas wie folgt aussieht: Array von Daten analysieren und mit nodemailer senden?

var results = [ { 
    asin: 'B01571L1Z4', 
    url: 'domain.com', 
    favourite: false, 
    createdAt: 2016-11-18T19:08:41.662Z, 
    updatedAt: 2016-11-18T19:08:41.662Z, 
    id: '582f51b94581a7f21a884f40' 
    }, 
    { 
    asin: 'B01IM0K0R2', 
    url: 'domain2.com', 
    favourite: false, 
    createdAt: 2016-11-16T17:56:21.696Z, 
    updatedAt: 2016-11-16T17:56:21.696Z, 
    id: 'B01IM0K0R2' 
    }] 
Was ich versuche ich zu tun, um eine Schleife in meinem HTML zu erstellen und dann die Schleife durch die Daten. Ich habe das unten versucht, aber es scheint, dass es Einschränkungen gibt, was ich tun kann.

Kann jemand bitte darauf hinweisen, wo ich falsch liege und was ich tun muss, um meine Probleme zu korrigieren.

Antwort

1

Es scheint, dass Sie versucht haben, results.forEach((item) zu verwenden, aber Sie platzierten dieses innerhalb der Anführungszeichen 'result.forEach((item)', die eine Zeichenkette ist und überhaupt nicht ausführen wird.

Möglicherweise haben Sie diese Art von Syntax in Ihrer Seite verwendet, wenn Sie die View-Engines wie jade, swig usw. verwendet haben, die das Parsen für Sie tun werden. Aber hier sollten Sie sie manuell aufrufen, um diese Syntax zu analysieren.

Andernfalls können Sie das Parsen mit der Array-Funktion wie unten, wo ich array.reduce, die praktisch ist und wird die Parsing schön.

Sie können das gleiche versuchen, um die content generieren und an den HTML-Code wie folgt anhängen.

html: '<div><table><thead><tr><th>ASIN</th><th>Url</th><th>Favourite</th><th>createdAt</th></tr></thead><tbody>' + 
content + '</tbody></table></div>' // html body 

var results = [ { 
 
    asin: 'B01571L1Z4', 
 
    url: 'domain.com', 
 
    favourite: false, 
 
    createdAt: '2016-11-18T19:08:41.662Z', 
 
    updatedAt: '2016-11-18T19:08:41.662Z', 
 
    id: '582f51b94581a7f21a884f40' 
 
    }, 
 
    { 
 
    asin: 'B01IM0K0R2', 
 
    url: 'domain2.com', 
 
    favourite: false, 
 
    createdAt: '2016-11-16T17:56:21.696Z', 
 
    updatedAt: '2016-11-16T17:56:21.696Z', 
 
    id: 'B01IM0K0R2' 
 
    }]; 
 

 
var content = results.reduce(function(a, b) { 
 
    return a + '<tr><td>' + b.asin + '</a></td><td>' + b.url + '</td><td>' + b.favourite + '</td><td>' + b.reatedAt + '</td></tr>'; 
 
}, ''); 
 

 
console.log(content); 
 

 
/* 
 
var sendUpdatedMerch = transporter.templateSender({ 
 
     from: '"Test" <[email protected]>', // sender address 
 
     subject: 'Test Updates', // Subject line 
 
     html: '<div><table><thead><tr><th>ASIN</th><th>Url</th><th>Favourite</th><th>createdAt</th></tr></thead><tbody>' + content + '</tbody></table></div>' // html body 
 
    }); 
 

 

 
    sendUpdatedMerch({ 
 
    to: '[email protected]' 
 
    }, {results}, function(err, info){ 
 
    if(err){ 
 
     console.log(err); 
 
    } else { 
 
     console.log('Done'); 
 
    } 
 
    }) 
 
    
 
    */

+0

Ahhh natürlich verwende ich keine Vorlage! Das funktioniert großartig. Vielen Dank! – K20GH

+0

@ K20GH Großartig :-) – Aruna

Verwandte Themen