2015-10-29 5 views
19

मैं एक साधारण लॉग सिस्टम बनाना चाहता हूं, जो पिछली पंक्ति से पहले एक लाइन को Node.js का उपयोग करके एक txt फ़ाइल में प्रिंट करता है, लेकिन मुझे नहीं पता कि फ़ाइल सिस्टम से कैसे Node.js काम करता है। क्या कोई इसे समझा सकता है?Node.js एक .txt फ़ाइल में एक पंक्ति लिखें

+0

तो, आप के बीच में एक लाइन सम्मिलित करना चाहते हैं तो

fs.createWriteStream(yourArray); 

यदि आपकी फ़ाइल बहुत बड़ी है यह सलाह नहीं दी जाती तरह अपने फ़ाइल लिखने एक पाठ फ़ाइल, है ना?अंत में तारों को जोड़ना बहुत आसान होगा। –

+0

हाँ, ठीक है, मैं अंत में एक स्ट्रिंग कैसे जोड़ सकता हूं? – Meterion

+0

संभावित डुप्लिकेट [नोड में फ़ाइल में कैसे संलग्न करें?] (Http://stackoverflow.com/questions/3459476/how-to-append-to-a-file-in-node) –

उत्तर

48

टेक्स्ट फ़ाइल के बीच में डेटा सम्मिलित करना एक साधारण काम नहीं है। यदि संभव हो, तो आपको इसे अपनी फ़ाइल के अंत में जोड़ना चाहिए।

डेटा कुछ पाठ फ़ाइल संलग्न करने के लिए सबसे आसान तरीका है fs module से निर्माण में fs.appendFile(filename, data[, options], callback) function उपयोग करने के लिए है:

var fs = require('fs') 
fs.appendFile('log.txt', 'new data', function (err) { 
    if (err) { 
    // append failed 
    } else { 
    // done 
    } 
}) 

लेकिन अगर आप फ़ाइल में कई बार प्रवेश करने के लिए डेटा लिखने के लिए चाहते हैं, तो यह सबसे अच्छा करने के लिए हो जाएगा बजाय fs.createWriteStream(path[, options]) function का उपयोग करें:

var fs = require('fs') 
var logger = fs.createWriteStream('log.txt', { 
    flags: 'a' // 'a' means appending (old data will be preserved) 
}) 

logger.write('some data') // append string to your file 
logger.write('more data') // again 
logger.write('and more') // again 

नोड या जब तक अपने आवेदन बंद कर दिया जाएगा, अपनी फ़ाइल हर बार जब आप .write फोन करता हूँ के लिए नए डेटा जोड़कर रखना होगा, आप जब तक स्ट्रीम को मैन्युअल बंद कर देंगे कैलोरी लिंग .end:

fs.appendFile('server.log', 'string to append', function (err) { 
    if (err) return console.log(err); 
    console.log('Appended!'); 
}); 
+0

सहेजना आवश्यक है फ़ाइल ? अगर मैं fs.appendFile का उपयोग करता हूं, तो फ़ाइल अभी भी खाली है? – Meterion

+0

'appendFile' टेक्स्ट फ़ाइल खोल देगा, इसमें नया डेटा जोड़ देगा, और बाद में इसे सेव करेगा। तो, नहीं, आपको इसे स्वयं सहेजने की आवश्यकता नहीं है। यह आपकी फ़ाइल खाली है, 'appendFile' कॉलबैक में' err' की जांच करने का प्रयास करें। –

+0

एक बार और कई बार विकल्पों का उल्लेख करने के लिए धन्यवाद। –

1

सीधे शब्दों में fs मॉड्यूल और कुछ इस तरह का उपयोग करें।

0

आप एक लॉग प्रणाली को लागू करना चाहते हैं, मैं Bunyan पैकेज पर एक नज़र लेने के लिए सलाह देते हैं:

logger.end() // close string 
1

चरण 1

यदि आप एक छोटे फ़ाइल स्मृति

चरण 2

सरणी में परिवर्तित फ़ाइल डेटा स्ट्रिंग

करने के लिए सभी फ़ाइल डेटा पढ़ें है चरण 3

,210

सरणी खोजें एक स्थान खोजने के जहां आप पाठ सम्मिलित करना चाहते हैं

चरण 4

बार जब आप अपने टेक्स्ट प्रविष्ट स्थान है

yourArray.splice(index,0,"new added test"); 

चरण 5

अपनी सरणी को स्ट्रिंग

में कनवर्ट करें
yourArray.join(""); 

चरण 6

संबंधित मुद्दे