2015-06-07 11 views
7

फ्रेमवर्क: node.js/express.js/जेडnode.js/जेड - जेड फ़ाइलों को पूर्व-संकलित कैसे करें और इसे कैश करें?

प्रश्न: उत्पादन env में, जब एक जेड फ़ाइल एक्सप्रेस द्वारा प्रदान की जाती है, तो जेड कैश का भविष्य इतना प्रस्तुतकर्ता तेज़ होता है।

जब मैं Node.js एप्लिकेशन शुरू, मैं कैसे पूर्व संकलन (या) पूर्व प्रदान कर सकते हैं (वार्मअप की तरह) सभी जेड फ़ाइलों इसलिए इसकी पहले से ही कैश में जब अनुरोधों में आने के लिए शुरू ...

मैं एक फ़ोल्डर रिकर्सन का उपयोग कर सकता हूं, मुझे बस यह जानने की जरूरत है कि प्री-कंपाइल (या) प्री-रेंडर कैसे करें।

क्या यह संभव है?

उत्तर

6

जेड टेम्पलेट पूर्व संकलन और कैशिंग में बनाया गया है।

http://jade-lang.com/api/

सीधे शब्दों में jade.compileFile को cache: true विकल्प निर्दिष्ट करें, और अपने टेम्पलेट फ़ाइलों के सभी के माध्यम से पुनरावृति।

var options = {cache: true}; 

// iterate/recurse over your jade template files and compile them 
jade.compileFile('./templates/foo.jade', options); 


// Jade will load the compiled templates from cache (the file path is the key) 
jade.renderFile('./templates/foo.jade'); 
+1

इस कोड को कहां लिखना है? –

+0

जहां भी आप चाहें ... आप सीधे एक एक्सप्रेस मार्ग से 'जेड.रेन्डरफाइल' को कॉल कर सकते हैं, लेकिन मुझे संदेह है कि क्या आप एक्सप्रेस में व्यू इंजन के रूप में जेड का उपयोग कर रहे थे, यह अंतर्निहित कैशिंग का लाभ उठाएगा। –

1

आप कोई पैरामीटर उपयोग नहीं कर रहे हैं, तो आप जेड टेम्पलेट्स सीधे HTML करने के लिए घुरघुराना या घूंट के साथ संकलन और यह फ़ाइल संशोधन के लिए देखने के लिए कर सकते हैं

कमांड लाइन से यह प्रयास करें: jade view/map-beacons.jade -D

यदि आपको पैरामीटर का उपयोग करने की आवश्यकता है तो मैं एंड्रयू लावर्स के उत्तर में कुछ ऐसा उपयोग करूंगा। jade view/map-beacons.jade -cD

0

:

compileFile एक समारोह है जो आप पारित करने के लिए मानकों यानी fn({ myJsVar: 'someValue' })

में वहाँ भी कमांड लाइन में एक ग्राहक विकल्प है, लेकिन मैं इसके लिए किसी भी उपयोग नहीं मिला उपयोग कर सकते हैं रिटर्न मैं, http.createServer बाहर इस कोड को समारोह

let cache_index=jade.renderFile('index.jade'); 

और जब वापसी दृश्य इस समाधान करना

res.statusCode = 200; 
res.setHeader('Content-Type', 'text/html');  
res.end(cache_index); 

जब उपयोग इस समाधान 1ms के लिए, लेकिन बीच 150ms 400 मि.से को

परिणाम समाधान सर्वर वापसी सूचकांक के बिना सर्वर वापसी सूचकांक: कैश बिना कैश के साथ

चित्र 1 enter image description here

चित्र 2 enter image description here

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