2012-03-17 11 views
5

चलाते समय त्रुटि प्राप्त करना मैं पहली बार नोड.जेएस के साथ गड़बड़ कर रहा हूं और एक्सप्रेस का उपयोग करके एक सरल एप्लिकेशन बनाने का निर्णय लिया है। मैं बहुत की तरह एक खाली निर्देशिका में github से निर्देशों का पालन किया:मूल एक्सप्रेस प्रोजेक्ट

npm install -g express 
express 
npm install -d 
node app.js 

जब localhost:3000 पर नेविगेट करके मैं पालन त्रुटि:

Express 
500 Error: Cannot find module './lib/jade' 
at Function._resolveFilename (module.js:332:11) 
at Function._load (module.js:279:25) 
at Module.require (module.js:354:17) 
at require (module.js:370:17) 
at Object. (C:\dev\gravity_kata\node_modules\jade\index.js:4:5) 
at Module._compile (module.js:441:26) 
at Object..js (module.js:459:10) 
at Module.load (module.js:348:31) 
at Function._load (module.js:308:12) 
at Module.require (module.js:354:17) 

जब node_modules\jade\lib के तहत देख मैं जेड के पुस्तकालय फ़ाइलों के सभी देखते हैं, लेकिन नहीं jade फ़ोल्डर। इसलिए मैंने जेड नामक लिब के तहत एक फ़ोल्डर बनाया और लाइब्रेरी फाइलों को वहां ले जाया और अब मेरा डिफ़ॉल्ट एप्लिकेशन काम करता है।

अब, क्योंकि मुझे नोड.जेएस और एक्सप्रेस के साथ लगभग कोई अनुभव नहीं है, मुझे यकीन है कि मैंने कुछ गलत किया है। क्या किसी को पता है कि यहां क्या हो रहा है?

संपादित करें:

मैं जेड कोड में कबूतर। जेड की index.js फ़ाइल के तहत इसे lib\jade की आवश्यकता है और lib फ़ोल्डर के अंतर्गत देखकर, jade.js फ़ाइल नहीं थी। खैर, यह समस्या है, लेकिन jade.js फ़ाइल क्यों गुम है? एनपीएम से जेड source खींचते समय, lib निर्देशिका के तहत एक jade.js फ़ाइल है। मैंने अपने प्रोजेक्ट के लिए जेड मॉड्यूल में डाउनलोड स्रोत से lib फ़ोल्डर कॉपी किया है और यह अभी ठीक काम करता है।

तो किसी कारण से, npm jade.js फ़ाइल को नीचे नहीं खींच रहा है। packages.json फ़ाइल में संस्करण जो मैंने खींचा स्रोत से मेल खाता है, 0.21.0। किसी के पास यह विचार है कि ऐसा क्यों हुआ?

+1

ऐसा लगता है कि यह एक जेड या एक्सप्रेस समस्या है। कोड में डुबकी लगाने का प्रयास करें ... –

+0

मैंने कोड में खुदाई के बाद जो पाया, उस पर मैंने अपनी प्रतिक्रिया संपादित की। – JChristian

+0

स्रोत से निकालने और निकालने के लिए मेरे लिए काम किया। लापता फाइल को इंगित करने के लिए धन्यवाद। एनपीएम/जेड के साथ एक बग होना चाहिए। – foobar

उत्तर

2

मेरे लिए, विंडोज़ पर, जेड संस्करण 0.22.0 ने इस मुद्दे को ठीक किया।

+0

यह जेड में एक बग होना चाहिए, क्योंकि संस्करण 0.22.0 ने भी मेरे लिए समस्या तय की है। – JChristian

2

शायद इसे इस तथ्य के साथ करना है कि आपने वैश्विक रूप से एक्सप्रेस स्थापित किया है (-g), लेकिन npm install -d स्थानीय रूप से किया गया था। उन दोनों को विश्व स्तर पर स्थापित करने के लिए प्रयास करें, या के रूप में मैं पसंद करते हैं, दोनों स्थानीय: अपने एक्सप्रेस परियोजना फ़ोल्डर में

sudo npm uninstall express -g 
npm install express 
npm install jade (or npm install -d) 
+1

विश्व स्तर पर एक्सप्रेस स्थापित करने से निष्पादन योग्य तक पहुंच मिलती है। मैंने वैश्विक स्तर पर एक्सप्रेस हटा दिया, लेकिन एक्सप्रेस और जेड पहले से ही स्थानीय रूप से स्थापित किए गए थे। मुझे अभी भी एक ही त्रुटि मिल रही है। – JChristian

11

सीडी और चलाने "NPM स्थापित", यह सब निर्भरता

स्थापित हो जाएगा
+0

जब आप एक्सप्रेस प्रोजेक्ट फ़ोल्डर कहते हैं, तो क्या आपका मतलब '/ node_modules/express' निर्देशिका है? – JChristian

+0

क्या आप लिनक्स या विंडोज चल रहे हैं? की मदद से आप अपने डेस्कटॉप का उपयोग कर testproject व्यक्त तो सीडी testproject NPM – gastonfartek

+0

im खेद im टिप्पणी के साथ अच्छा नहीं स्थापित करते हैं, मैं उस टिप्पणी – gastonfartek

0

सच यह सुनिश्चित कर लें कि सभी मॉड्यूल require एस सही हैं। जावास्क्रिप्ट आपको यह बताने में बहुत मजेदार है कि वास्तव में क्या गलत है। जेड टेम्पलेट लाइन को हटाने का प्रयास करें और देखें कि तब क्या होता है।

0

मुझे बस जेड मॉड्यूल की त्रुटि के साथ यह समस्या मिली। ऐसा लगता है कि जेड फ़ोल्डर स्वचालित रूप से नहीं बनाया गया था (कुछ प्रकार की बग)। अब मैं इसे पुनर्स्थापित जेड के साथ हल किया। उसके बाद जेड फ़ोल्डर स्वचालित रूप से बनाया गया था। npm अनइंस्टॉल करें gulp-jade और फिर gulp-jade को फिर से स्थापित करें