2012-07-29 20 views
5

मैं O'Reilly पुस्तक "नोड.जेएस अप एंड रनिंग" में अध्याय 2 पर "लेट्स बिल्ड ट्विटर" नोड ऐप से बहुत निराश हूं।ईजेएस त्रुटियां: परिभाषित नहीं; मॉड्यूल 'अपरिभाषित' नहीं ढूंढ सकता; मॉड्यूल 'ejs' नहीं मिल रहा है; शरीर को परिभाषित नहीं किया गया है

मैंने कभी भी ईजेएस का उपयोग नहीं किया है और यह भी नहीं पता कि ईजेएस फाइलों के लिए क्या एक्सटेंशन डालना है। साथ ही, मैं अपने ऐप्लिकेशन काम इन विभिन्न त्रुटियों हो रही नहीं मिल सकता है:

  • आंशिक परिभाषित नहीं है
  • मॉड्यूल 'अनिर्धारित' जहां app.render ('सूचकांक' कर नहीं खोजा जा सका ...
  • नहीं कर सकते मिल मॉड्यूल 'EJS'
  • शरीर

यह और भी निराशा होती है, क्योंकि यह केवल अध्याय 2 है और अगर यह अन्य सामग्री के लिए स्विच के लिए बेहतर नहीं होगा मैं सोच रहा हूँ है ...

परिभाषित नहीं है
+0

किसी और के लिए उत्तर देना असंभव होगा क्योंकि आप कोई जानकारी प्रदान नहीं करते हैं ...:/ – Esailija

+0

मैं सिर्फ ऐसे लोगों के लिए सहायक होने की कोशिश कर रहा हूं जो ** वर्तमान में पुस्तक पढ़ रहे हैं और ' अपने ऐप काम नहीं कर रहे हैं। – Tinou

उत्तर

10

यदि आप ओ'रेली अप और रनिंग बुक में अध्याय 2 में "लेट्स बिल्ड ट्विटर" प्रोग्रामिंग ट्यूटोरियल से भी निराश हैं, तो यह "ऐप" काम करने के लिए पूरक है।

पूर्व आवश्यक वस्तुएँ:

  1. इस एप्लिकेशन को काम करने के लिए सुनिश्चित करें कि आप एक्सप्रेस < 3.x. का एक संस्करण है वास्तव में, संस्करण 3.0 और उच्चतर में उन्होंने "आंशिक" समर्थन हटा दिया और अब टेम्पलेट विशिष्ट है। तो ऐसा करके एक संस्करण 2.x स्थापित करना सुनिश्चित करें: npm install [email protected]
  2. पुस्तक ईजेएस फ़ाइलों का उपयोग करने के तरीके पर कोई जानकारी प्रदान नहीं करती है। थोड़ी सी शोध के बाद, ईजेएस फ़ाइल को समझने और विश्लेषण करने के लिए व्यक्त करने के लिए आपको ... ejs इंस्टॉल करना होगा। स्थापना किसी अन्य मॉड्यूल की तरह बहुत सरल है: npm install ejs

मांस:

  1. इस एप्लिकेशन के लिए, फ़ोल्डर में सभी फ़ाइलें views और partials एक्सटेंशन होना चाहिए
  2. आप EJS स्थापित .ejs लेकिन आप के रूप में उपयोग करने के लिए EJS एक्सप्रेस बताने के लिए है app.render() समारोह में टेम्पलेट प्रारूप आप दो तरीके हैं यह करने के लिए:

(1) आप डिफ़ॉल्ट टेम्पलेट इंजन और के रूप में EJS सेट n बस बता अपनी फ़ाइल रेंडर करने के लिए व्यक्त app.set('view engine', 'ejs');

res.render('index', ...)

(2) तुम बस app.render() समारोह EJS उपयोग करने के लिए नहीं कहेंगे, यह ध्यान रखना होगा

res.render('index.ejs', ...)

में तो व्यक्त उस बिंदु पर यह काम नहीं करता है या यह अभी भी स्पष्ट नहीं है, कामकाजी कोड को देखने से कुछ भी बेहतर नहीं है। फोर्क या ऐप डाउनलोड करें here

आशा है कि यह अन्य पाठकों की सहायता करेगी।

+0

ईजेएस आंशिक समर्थन को हटा नहीं था? मुझे लगता है कि Google समूह से पूछना और उन्होंने कहा कि उन्होंने किया था। – lostAstronaut

+0

अच्छी तरह से मैं पुस्तक में * समान * संस्करण का उपयोग करने के लिए सुनिश्चित करने के लिए एक्सप्रेस 2.5.11 और ejs 0.8.0 का उपयोग कर रहा हूं। लेकिन एक्सप्रेस 3.x में आंशिक के लिए कोई समर्थन नहीं है। – Tinou

+0

हैंडलबार Express3 के साथ आंशिक समर्थन करता है। मैं अभी इसका उपयोग कर रहा हूँ। – lostAstronaut

0

ओ रेली बुक Node.js बनाने और चलाने - भाग 1 => अध्याय 2 रोचक बातें कर => के एक्सप्रेस 3.0 और EJS के लिए ट्विटर (काम कर कोड का निर्माण करते हैं embedd आंशिक के बिना नोड रेंडरर के लिए एड जावास्क्रिप्ट) डाउनलोड स्रोत: https://github.com/thinkphp/express-tweets

-1

मैंने एक्सप्रेस @ 4 और हल किया गया मुद्दा स्थापित किया है। अगर हम संपादक के बाहर कोई कोड लिखते हैं और यह उस त्रुटि को दिखाएगा।

सादर, Ningappa

1

एक्सप्रेस चालू परियोजना निर्देशिका में 4 @ स्थापित करें, यह मेरी समस्या हल!

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