2017-02-07 4 views
0

J'ai gratté plusieurs sites avec la même structure avec succès. Lorsque j'imprime les résultats, ils semblent OK, maintenant je veux tout enregistrer dans un fichier.node.js Osmose écrire les résultats dans le fichier

Problème: seul le dernier objet MyData récupéré est enregistré dans le fichier.

var osmosis = require('osmosis'); 
var jsonfile = require('jsonfile') 
var sitesToHandle = ['site1', 'site2', 'site3', 'site4'] 
sitesToHandle.forEach((urlToHandle) => { 
osmosis.get(urlToHandle) 
.find('.productList') 
.set({ 
    MyData: [ 
    { 
     'ID': 'a.number', 
     'Product': 'a.productname', 
     'Price': 'a.price', 
    } 
    ] 
}) 
.data(function(document) { 
    console.log(document); 
    var file = 'osmosis.json' 
    jsonfile.writeFile(file, document) 
    }); 
}); 

Répondre

0

vous réécrivez votre fichier à chaque itération.

vous devez utiliser {flag: 'a'} pour ajouter les données au fichier JSON existant:

jsonfile.writeFile(file, document, {flag: 'a'})