2011-03-01 9 views
8

में एक पाठ फ़ाइल में स्ट्रिंग को बदलें, मैं node.js. का उपयोग कर रहा हूं। मैं कुछ प्लेसहोल्डर तारों के साथ एक फ़ाइल पढ़ना चाहता हूं और फ़ाइल की सेवा करने से पहले गतिशील रूप से उन्हें प्रतिस्थापित करना चाहता हूं। यह एक HTML फ़ाइल नहीं है, इसलिए एक templating इंजन काम नहीं करेगा।node.js

मैं यह कैसे कर सकता हूं?

+0

मैं एक स्ट्रिंग के रूप फ़ाइल लोड और regex की जगह कर की कोशिश की है। यह सोच रहा था कि यद्यपि एक और अधिक सुरुचिपूर्ण तरीका है। –

+1

क्या आपने मच्छरों की कोशिश की है? http://mustache.github.com/ – generalhenry

उत्तर

23

एक टेम्पलेट इंजन overkill सिर्फ string.replace() का उपयोग किया जाता है।

temp = "Hello %NAME%, would you like some %DRINK%?"; 

temp = temp.replace("%NAME%","Michael Dillon"); 
temp = temp.replace("%DRINK%","tea"); 
console.log(temp); 

केवल में कुछ अधिक परिश्रम के साथ आप एक सामान्य प्रयोजन टेम्पलेट वस्तु स्ट्रिंग में सिर्फ मानक तरीकों के आधार पर समारोह बना सकता है।

2

templating के इंजन केवल एचटीएमएल के लिए नहीं हैं। आप एक्सप्रेस उपयोग कर रहे हैं, उदाहरण के लिए, आप स्वयं के हैडर सेट और एक सामग्री प्रकार निर्दिष्ट कर सकते हैं:

दृश्य:

var foo = "{{ bar }}"; 

प्रतिपादन:

app.get('/file.js', function(req, res, next) { 
    res.render('templateName', { 
    locals: {bar: 'quux'}, 
    headers: {'content-type': 'text/javascript'} 
    }); 
}) 

निकलेगा:

var foo = "quux"; 

आप एक्सप्रेस का उपयोग नहीं कर रहे हैं, तो आप सिर्फ टेम्पलेट प्रस्तुत करना और किसी भी सामग्री के साथ प्रतिक्रिया भेज सकते हैं आपको पसंद है।