जेड बनाम ईजेएस, प्रत्येक के पेशेवरों और विपक्ष क्या हैं और प्रत्येक के लिए क्या उद्देश्य हैं?
क्या कोई अन्य एक्सप्रेस-संगत टेम्पलेट इंजन हैं जो अच्छे हैं और क्यों?
जेड बनाम ईजेएस, प्रत्येक के पेशेवरों और विपक्ष क्या हैं और प्रत्येक के लिए क्या उद्देश्य हैं?
क्या कोई अन्य एक्सप्रेस-संगत टेम्पलेट इंजन हैं जो अच्छे हैं और क्यों?
जवाबों:
मैंने पहले जेड का इस्तेमाल किया। जेड के बारे में अच्छी बात यह है कि आपके पास एक छोटा वाक्यविन्यास है जिसका अर्थ है कि आप तेजी से टाइप कर सकते हैं। block
जेड में बहुत शक्तिशाली मुझे बहुत मदद कर सकते हैं जो जब जटिल एचटीएमएल कोड के साथ काम कर रहा है।
दूसरी ओर, जेड में कुछ सरल सामान करना मुश्किल है, एक साधारण स्थिति के आधार पर एक डीआईवी में कक्षाएं जोड़ने जैसी चीज। मुझे ऐसा कुछ करने की जरूरत है
- if (isAdmin)
div.admin.user
- else
div.user
जेड भी टैग और चर के बीच अंतर नहीं करते हैं जो कोड को बहुत भ्रमित करते हैं (कम से कम मेरे लिए)
a(href='/user/' + user.id)= user.name
जेड भी डिजाइनर के अनुकूल नहीं है। मेरे डिजाइनर दोस्त अक्सर मुझे HTML और सीएसएस देते हैं (उन्होंने हाल ही में LESS पर स्विच किया है लेकिन फिर भी HTML का उपयोग करना चाहते हैं), और इस कारण से अगर मैं जेड का उपयोग करता हूं तो मुझे HTML को जेड में बदलने की आवश्यकता है। जेड में भी, हमें इंडेंटेशन का उपयोग करने की आवश्यकता है, इसलिए यदि आपका HTML संरचना जटिल हो जाता है, तो आपका कोड भयानक (विशेष रूप से टेबल) दिखेगा। कभी-कभी, मुझे यह भी नहीं पता कि मैं किस स्तर पर हूं
table
thead
tr
td
a
img
tr
td
tbody
tr
td
हाल ही में, मैंने EJS पर स्विच किया और मैं अब तक इससे खुश हूं। यह शुद्ध एचटीएमएल के बहुत करीब है और उसी सिंटैक्स का उपयोग करें जैसा कि फ्रंटएंड टेम्पलेट इंजन मैं उपयोग कर रहा हूं (अंडरस्कोर टेम्पलेट)। मुझे कहना होगा कि ईजेएस के साथ सब कुछ आसान है। मुझे अपने डिज़ाइनर मित्र से HTML टेम्प्लेट प्राप्त करते समय सभी रूपांतरण करने की आवश्यकता नहीं है। मुझे बस इतना करना है कि एक्सप्रेसजेएस से पारित चर के साथ गतिशील भागों को बदलना है। जेड का उपयोग करने पर मुझे पागल बनाने वाले सामान EJS में हल किए जाते हैं
<div class="<%= isAdmin? 'admin': '' %> user"></div>
और मैं जान सकता हूं कि ईजेएस के साथ क्या है
<a href="/user/<%= user.id %>"><%= user.name %></a>
यदि आप जेड (मेरे जैसे) के छोटे वाक्यविन्यास को याद करते हैं तो आप ज़ेन-कोडिंग और ईजेएस को जोड़ सकते हैं जो सामान्य रूप से प्रगति को गति देने में आपकी सहायता कर सकता है। प्रदर्शन के बारे में, मुझे कोई अंतर नहीं दिखता है
हालाँकि, EJS जेड की तरह शक्तिशाली नहीं है, इसमें डिफ़ॉल्ट रूप से ब्लॉक नहीं हैं (इस लड़के ने EJS https://github.com/RandomEtc/ejs-locals के लिए ब्लॉक फीचर लागू किया है )
तो, यह पूरी तरह से आप पर निर्भर करता है कि आप जो कुछ भी आरामदायक बनाते हैं, उसे चुनें। लेकिन अगर आप मेरे जैसे फ्रंटेंड के लिए एक और टेम्पलेट इंजन का उपयोग करने जा रहे हैं, तो बेहतर है कि आप दोनों पक्षों के लिए एक ही चीज़ का उपयोग करें
अद्यतन 16 दिसंबर 2013: हाल ही में, मैंने ईजेएस से स्विग (जो पायथन दुनिया में जिंजा 2 के समान अवधारणा है) पर स्विच किया है। इसका मुख्य कारण ईजेएस में ब्लॉक की कमी भी है ejs-locals
। Swig टेम्प्लेट के लिए सादे HTML का उपयोग कर रहा है और बहुत सी अच्छी विशेषताएं हैं जो एक टेम्पलेट इंजन में उदाहरण फ़िल्टर और टैग के लिए होनी चाहिए जो कि EJS के पास नहीं है
Jade
एक या दो साल पहले कोशिश की थी। शायद अब यह बेहतर हो रहा है। हालाँकि, मेरी पहली बात को फिर से पा लेना, यह आसान नहीं होगा
मैं यह नहीं कहूंगा कि एक दूसरे से बेहतर है। वे अलग हैं, यह सुनिश्चित करने के लिए है, लेकिन "बेहतर" काफी सापेक्ष शब्द है।
मुझे ईजेएस पसंद है क्योंकि मुझे लगता है कि एचटीएमएल बहुत बुरा नहीं है, साथ ही यह मुझे जेड के सीखने के बिना दूसरों के साथ काम करने की अनुमति देता है।
हालांकि, जेड बल्कि साफ है और आपके विचारों में कुछ साफ कोड के लिए बनाता है।
जो भी आपको अधिक आरामदायक लगे, उसे चुनें।