2016-09-03 4 views
8

मैं एंगुलरजेस (1.x) से परिचित हूं और निर्देशों में टेम्पलेट का उपयोग करता हूं।बैकएंड पर जेड या ईजेएस जैसे टेम्पलेट इंजनों की आवश्यकता क्यों होगी?

वर्तमान में मैं नोडज सीख रहा हूं और पाठ्यक्रम टेम्पलेट इंजन के एक हिस्से के रूप में उल्लेख किया गया है। बैकएंड पर उनका उपयोग करने के क्या फायदे हैं?

वर्तमान में मुझे कोई उपयोग नहीं दिखाई दे रहा है।

उत्तर

12

यदि आपके पास डेटा है (डेटाबेस से कहें) जिसे HTML में प्रस्तुत करने की आवश्यकता है, तो आप डेटा और टेम्पलेट लेने के लिए टेम्पलेट इंजन का उपयोग कर सकते हैं और इसे HTML पर प्रस्तुत कर सकते हैं (जो बाद में क्लाइंट को सेवा प्रदान करता है)।

यदि आपका फ्रंटएंड ऐप एक्सएचआर कॉल या सर्वर से डेटा पुनर्प्राप्त करने के समान कुछ करता है, तो आम तौर पर एचटीएमएल सर्वर पक्ष को प्रस्तुत करने के लिए उपयोगी नहीं होता है (इसके बजाय, डेटा क्लाइंट को JSON के रूप में भेजा जाता है)।

तो यह इस बात पर निर्भर करता है कि आपके ऐप (दोनों फ्रंटेंड और बैकएंड) को संरचित किया गया है, अगर यह समझ में आता है या टेम्पलेटिंग इंजन का उपयोग नहीं किया जाता है।

हाइब्रिड समाधान भी हैं जहां प्रारंभिक HTML सर्वर पक्ष प्रदान किया जाता है, और फिर क्लाइंट पक्ष "लेता है"। यह कुछ ऐसा है, उदाहरण के लिए, प्रतिक्रिया का समर्थन करता है। बड़ा विचार यह है कि आप सर्वर और क्लाइंट पर दोनों घटकों का उपयोग कर सकते हैं, और जब कोई पृष्ठ खोला जाता है, तो उपयोगकर्ता को पूरी तरह से प्रस्तुत प्रारंभिक पृष्ठ देखना होगा (क्लाइंट पक्ष को पुनर्प्राप्त करने के बजाय पहले बैकएंड से डेटा और फिर पेज को प्रस्तुत करना)।

5

आप वास्तव में उन्हें जरूरत नहीं है, लेकिन वे कहते हैं कि अपने पृष्ठों और अधिक गतिशील बनाता है सुविधाओं की एक बहुत कुछ है ..

उदाहरण के लिए आप बस HTML इस कोड का उपयोग

app.get('/',function(req,res){ 
    res.sendFile(path.join(__dirname+'/index.html')); 
    //__dirname : It will resolve to your project folder. 
}); 

लेकिन इंजन के साथ प्रदान कर सकते हैं आप टेम्पलेट में डेटा भेज सकते हैं। http://expressjs.com/en/api.html#res.render

// pass a variable to the view 
res.render('somePage', { 
    title: 'Awesome title', 
    userFriends: friendsList, 
    name: 'loggedUserName' 
}); 

और अब सामने के अंत टेम्पलेट्स पर (इस मामले में EJS) डेटा है कि आप में भेजने के साथ एचटीएमएल बस जाएँगे। तो एचटीएमएल गतिशील बन गया है और आप प्रत्येक पृष्ठ प्रत्येक उपयोगकर्ता के लिए अलग दिखता है बना सकते हैं।

<ul> 
    <% for(var i=0; i<userFriends.length; i++) {%> 
    <li><%= userFriends[i] %></li> 
    <% } %> 
</ul> 
केवल आपके अनावश्यक AJAX का एक बहुत मिलता है और html जो बुरा विचार है में डेटा जोड़ने के लिए कॉल करने के लिए की आवश्यकता होगी HTML के साथ

उम्मीद है कि इससे मदद मिलती है।

0

एक व्यू इंजन आपको विकल्पों के साथ HTML प्रस्तुत करने की अनुमति देता है।

<!DOCTYPE html> 
<html> 
    <head> 
    <title>{{title}}</title> 
    </head> 
    <body> 
    {(userIsSignedIn){<!-- if the user is signed in, display username and description--> 
    <p>{{username}} is {{description}}</p> 
    }} 

    {(!userIsSignedIn){<!--if user isn't signed in, ask them to sign in--> 
    <p>Sign in to view this page</p> 
    }} 

    </body> 
</html> 

तो मैं सुन सकता है, उदाहरण के लिए, एक्सप्रेस के साथ एक गतिशील उपयोगकर्ता प्रोफ़ाइल URL पर और फिर गतिशील सामग्री वापसी: उदाहरण के लिए, squirrelly का उपयोग कर, मैं एक फ़ाइल है कि इस तरह दिखता है बना सकते हैं।

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