2016-03-18 28 views
2

'da var olan bir json dosyasına nasıl ekleyebilirim? Node.js ve JavaScript’te yeniyim. Web'den görüntüleri çeken bir komut dosyasından bir sonuç günlüğü tutmak istediğim bir results.json dosya var. Ancak, şu anki komut dosyam yalnızca mevcut sonucun üzerine yazıyor. results.json üzerine nasıl ekleyebilirim veya ekleyebilirim, böylece sonraki her sonuç results.json dosyasına kaydedilir? Geçerli bir json olmasını isterim. Eğer dosya eklemek istiyorsanız kullanmanız gereken Geneldenode.js

[ 
    "search result: currentSearchResult" 
] 
+0

[Nasıl Düğüm bir dosyaya eklemek?] Olası yinelenen (http://stackoverflow.com/questions/3459476/how-to olduğunu -de-a-file-in-node) – peteb

+0

Ortaya çıkan dosyanın geçerli json içermesini ister misiniz? eğer öyleyse, sadece dosyaya eklemek yeterince iyi olmayacak. –

+0

@KevinB evet, bu ideal olurdu ama dürüstçe ekleyeceğim doğru terminoloji, bu yüzden sorumu düzenledim. – filmplane

cevap

5

, siz, dosyayı açmak JSON ayrıştırmak, diziye yeni bir sonuç eklemek, bir dizeye geri dönüşümü ve tekrar kurtarmalıyız.

var fs = require('fs') 

var currentSearchResult = 'example' 

fs.readFile('results.json', function (err, data) { 
    var json = JSON.parse(data) 
    json.push('search result: ' + currentSearchResult) 

    fs.writeFile("results.json", JSON.stringify(json)) 
}) 
+0

json.push() ??? –

+0

'json' bir Array'dir ve' .push' ile bir diziye yeni bir öğe ekleyebilirsiniz. –

+0

Bu örnekte, "json", –

0

:

fs.appendFile("results.json", json , function (err) { 
    if (err) throw err; 
    console.log('The "data to append" was appended to file!'); 
}); 

var currentSearchResult = someWebSearchResult 
var fs = require('fs'); 
var json = JSON.stringify(['search result: ' + currentSearchResult + ': ', null, "\t"); 
fs.writeFile("results.json", json); 

Ve results.json: Burada

genel örnektir Ekleme dosyası mevcut değilse dosya oluşturur.

Ancak, önce JSON verilerini eklemek isterseniz, verileri okursunuz ve bundan sonra bu verilerin üzerine yazabilirsiniz. Eğer dosya geçerli JSON olmak istiyorsan

fs.readFile('results.json', function (err, data) { 
    var json = JSON.parse(data); 
    json.push('search result: ' + currentSearchResult);  
    fs.writeFile("results.json", JSON.stringify(json), function(err){ 
     if (err) throw err; 
     console.log('The "data to append" was appended to file!'); 
    }); 
}) 
+0

Açıklamak gerekirse, verilerin üzerine yazmak istemiyorum. Mevcut sonuçlara ek veri eklemek istiyorum – filmplane

+0

@filmplane Geçerli json yapmadan ilk örnek veri. İkinci örnek de verileri ekliyor, ancak json yapısı yok edilmiyor. –

1

Bunyan'u kullanabilirsiniz. Yani

basit ve hızlı JSON günlüğü kütüphanesi