नोड.जेएस, त्रुटि: मॉड्यूल 'एक्सप्रेस' नहीं मिल सकता है


125

मैं Node.js में नया हूं, अपना पहला वेब एप्लिकेशन बनाने के लिए एक्सप्रेस सीखने की कोशिश करता हूं। मैं अपने पहले नमूने कोड पर अटक गया और इसे चलाने के लिए कुछ मदद चाहिए। इस प्रश्न को पोस्ट करने से पहले, मैंने स्टैक ओवरफ्लो पर खोज की, कुछ इसी तरह के प्रश्न पाए लेकिन फिर भी इसे ठीक नहीं किया जा सका।

त्रुटि: मॉड्यूल 'एक्सप्रेस' नहीं मिल रहा

मैं मैक ओएस 10.8.2 का उपयोग कर रहा हूं । मैं Node.js का उपयोग कर स्थापित किया है nvm

नोड.जेएस: नोड के लिए 0.8.20 का रास्ता: /User/feelexit/nvm/v0.8.20/bin/node व्यक्त करने के लिए रास्ता: / उपयोगकर्ता / शुल्क-पत्र / nvm / node_modules / एक्सप्रेस

यहाँ मेरा नमूना कोड है: यह फ़ाइल यहाँ पर स्थित है:

/Users/feelexit/WebstormProjects/learnnode/node_modules/index.js

var express = require('express');

var app = express();

app.get('/', function(req, res){

    res.send('welcome to express');
});

app.listen(3000);

जब मैं इस कमांड को चलाने की कोशिश करता हूं node index.js

मुझे त्रुटि संदेश मिल रहा है, कृपया इसे ठीक करने में मेरी मदद करें।

धन्यवाद।

Error: Cannot find module 'express'
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Module.require (module.js:362:17)
    at require (module.js:378:17)
    at Object.<anonymous> (/Users/feelexit/WebstormProjects/learnnode/node_modules/index.js:1:81)
    at Module._compile (module.js:449:26)
    at Object.Module._extensions..js (module.js:467:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.runMain (module.js:492:10)
feelexits-Mac:node_modules feelexit$ 

चॉबी के प्रश्न का उत्तर देने के लिए अपडेट करें:

feelexits-Mac:~ feelexit$ npm install
npm ERR! install Couldn't read dependencies
npm ERR! Error: ENOENT, open '/Users/feelexit/package.json'
npm ERR! If you need help, you may report this log at:
npm ERR!     <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR!     <npm-@googlegroups.com>

npm ERR! System Darwin 12.2.0
npm ERR! command "/Users/feelexit/nvm/v0.8.20/bin/node" "/Users/feelexit/nvm/v0.8.20/bin/npm" "install"
npm ERR! cwd /Users/feelexit
npm ERR! node -v v0.8.20
npm ERR! npm -v 1.2.11
npm ERR! path /Users/feelexit/package.json
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /Users/feelexit/npm-debug.log
npm ERR! not ok code 0

हो सकता है कि यह stackoverflow.com/questions/9133784/… में
user568109

30
क्या आपने टाइप कियाnpm install
chovy

1
क्या आप निश्चित हैं कि एक्सप्रेस लाइब्रेरी आपके "node_modules" फ़ोल्डर में है? आप अपने index.js को एक निर्देशिका को "/ Users / feelexit / WebstormProjects / learnnode /" तक ले जाने का प्रयास करना चाहते हैं और नोड_मॉडल फ़ोल्डर को अकेले छोड़ सकते हैं।
डिफॉल्ट

1
कृपया अपनी package.jsonफ़ाइल पोस्ट करें । यह समस्या को डीबग करने में मदद करेगा।
अखिल रैना

@chovy, मैं एक्सप्रेस स्थापित करने के लिए npm स्थापित एक्सप्रेस का उपयोग करता हूं। केवल "एनपीएम इंस्टॉल" क्या करता है?
क्विंकिंग 126

जवाबों:


157

इसे कहते हैं

 Cannot find module 'express'

क्या आपने एक्सप्रेस स्थापित किया है? यदि नहीं तो इसे चलाएं।

 npm install express

और अपना प्रोग्राम फिर से चलाएं।


1
यह मेरे मामले में समस्या को ठीक नहीं करता है। npm install expressइस त्रुटि को दिखाता है npm ERR! Error: UNKNOWN, symlink '../express/bin/express'। एक गहरा मुद्दा लगता है।
सालीक

यदि आपने npm के लिए अपनी निर्देशिका अनुमतियाँ ठीक नहीं की हैं तो sudo का उपयोग करें। किसी भी मामले में, "sudo npm install" एक बेहतर विकल्प है।
गौरव गुप्ता

यदि आप विश्व स्तर पर चीजों को स्थापित करते हैं और हां, तो सिमलिंक टूट गया। npm linkसंबंधित लिंकिंग को फिर से बनाने का प्रयास करें ...
फ्रैंक नोके

@Sliq मैंने आपके समाधान के साथ प्रयास किया लेकिन मैं अपनी समस्या को हल नहीं कर सकता क्या आप मेरी मदद कर सकते हैं?
VjyV

अनदेखा न करें "और अपना कार्यक्रम फिर से चलाएं।" मेरे मामले में मुझे अपनी प्रक्रिया को फिर से शुरू करना पड़ा process manager। यह अपने आप से पुनः आरंभ नहीं हुआ।
तडेज

42

अपने टर्मिनल में एक्सप्रेस करने के बाद, फिर करें

 npm install

सभी निर्भरताओं को स्थापित करने के लिए।

फिर आप सर्वर को चलाने के लिए नोड एप कर सकते हैं।


7
आपको इंगित करना चाहिए कि इसके लिए पैकेज सूची फ़ाइल अर्थात .json की आवश्यकता है .. और यह हमेशा ऐसा नहीं होता है।
पोग्रिंडिस

@VjyV उसी निर्देशिका में आपके पास .js नोड फ़ाइल है। लेकिन इसमें निर्देशिका में package.json फ़ाइल होनी चाहिए ताकि यह आवश्यक निर्भरताएं स्थापित कर सके।
सौरभ राणा

34

जांचें कि क्या आपने expressमॉड्यूल स्थापित किया है। यदि नहीं, तो इस कमांड का उपयोग करें:

npm install express

और यदि आपकी node_modulesनिर्देशिका किसी अन्य स्थान पर है, तो NODE_PATHएन्वायरमेंट वैरिएबल सेट करें:

set NODE_PATH=your\directory\to\node_modules;%NODE_PATH%

12
यह सही उत्तर है, इन CTRL+C / CTRL+V npm installउत्तरों को पोस्ट करने वाले सभी लोगों के लिए : क्या आपको वास्तव में लगता है कि कोई भी बिना जाँच किए कुछ चलाने की कोशिश करेगा यदि पहले इसकी स्थापना की गई हो? गंभीरता से ...
क्लाउडियो होल्लांद

3
बस एक मामूली विवरण जोड़ते हुए: आपको अपने एप्लिकेशन की निर्देशिका में इंस्टॉल एक्सप्रेस कमांड को चलाने की आवश्यकता है कि आपके Node.js इंस्टॉलेशन फ़ोल्डर या ऐप्पडाटा में npm-folder की। क्योंकि मैंने जो गलती की है, क्योंकि मुझे लगा कि यह किसी तरह का एसडीके-ऐड था।
एलेक्स

29

 npm स्थापित - एक्सप्रेस एक्सप्रेस   
इसने मेरे लिए काम किया, बस फिर से एक्सप्रेस.जेएस इंस्टालेशन चलाया


11

npm आपके ऐप डायरेक्टरी के भीतर से इंस्टॉल होने से समस्या ठीक हो जाएगी क्योंकि यह आवश्यक सब कुछ स्थापित कर देगा


5

यहाँ एक पुराने सूत्र को खोदने पर BUT मुझे भी यही त्रुटि हुई और मैंने निर्देशिका को हल करने का संकल्प लिया जिसमें मेरा NodeApp निवास करने और दौड़ने में सक्षम था। npm install -d


यह निश्चित नहीं है कि यह क्यों या कैसे होता है, लेकिन यह आपकी भक्ति पर निर्भर करता है: docs.npmjs.com/cli/install
Guy Lowe

1
@GuyLowe npm के -dलिए डिबग है, -Dदेव निर्भरता है।
जॉन फुटेव

4

जब तक आप Node_PATH को सेट नहीं करते हैं , तब तक केवल अन्य विकल्प एक्सप्रेस डायरेक्टरी में एक्सप्रेस को स्थापित करना है, जैसे npm install express --save। एक्सप्रेस पहले से ही स्थापित हो सकता है लेकिन nodeकिसी कारण से यह नहीं मिल सकता है


यह एक मेरे लिए काम करता है, आपके .js फ़ाइलों के समान निर्देशिका में इंस्टॉल कमांड को बेहतर तरीके से निष्पादित करता है। इसके अलावा आप संकुल "npm init" को आगे की समस्याओं से बचने के लिए package.json फ़ाइल बनाने के लिए चला सकते हैं।
इमरशाह

3

आपके पास अपना एक्सप्रेस मॉड्यूल आपकी परियोजना की तुलना में एक अलग निर्देशिका में स्थित है। यह शायद समस्या है क्योंकि आप require()इसे स्थानीय स्तर पर आजमा रहे हैं। अपने एक्सप्रेस मॉड्यूल को / Users / feelexit / nvm / node_modules / express से / Users / feelexit / WebstormProjects / learnnode / node_modules / एक्सप्रेस में ले जाने का प्रयास करेंयह जानकारी आपको नोड_मॉडल फ़ाइल संरचनाओं के बारे में अधिक जानकारी दे सकती है।


2

यदि आप मुख्य फ़ाइल में स्थित है /Users/feelexit/WebstormProjects/learnnode/node_modules/index.jsतो जरूरतों पर स्थित होना करने के लिए व्यक्त /Users/feelexit/WebstormProjects/learnnode/node_modules/node_modulesनोड हमेशा में मॉड्यूल के लिए लग रहा है के रूप में ./node_modules(और इसके आंतरिक फ़ोल्डर) जब पथ के साथ शुरू न ./या /( अधिक जानकारी )

मुझे लगता है कि आप मॉड्यूल फ़ोल्डर में youre मुख्य फ़ाइल रखा याद आती है


2

इस परिदृश्य के लिए संबंधित फ़ोल्डर जहाँ आप प्रोग्राम चलाना चाहते हैं के लिए अपने cmd प्रॉम्प्ट का उपयोग करके npm इंस्टॉल एक्सप्रेस कमांड चलाएं। उदाहरण मैं एक्सप्रेस मॉड्यूल प्रोग्राम server.js को F: \ nodeSample में चलाना चाहता हूं। तो उस विशेष फ़ोल्डर में "npm इंस्टॉल एक्सप्रेस" चलाएं और फिर server.js चलाएं


1

npm install express body-parser cookie-parser multer --saveइस समस्या को हल करने के लिए अपने स्रोत कोड नोडज फ़ाइल के साथ एक ही निर्देशिका में कमांड चलाएँ । P / s: अधिक समझने के लिए रन कमांड के बाद अपनी निर्देशिका की जाँच करें!


1

दुर्लभ मामलों में, npm कैश दूषित हो सकता है। मेरे लिए, जो काम किया गया था:

npm cache clean --force

आमतौर पर, पैकेज प्रबंधक भ्रष्टाचार का पता लगाएगा और अपने आप को फिर से भर देगा इसलिए यह आमतौर पर आवश्यक नहीं है। हालांकि, मेरे मामले में विंडोज 10 कुछ बार दुर्घटनाग्रस्त हो गया और मुझे संदेह है कि यह एक भ्रूण ऑपरेशन के दौरान हो सकता है। आशा है कि यह किसी की मदद करता है!

अधिक जानकारी: https://docs.npmjs.com/cli/cache


1

मैं एक ऐसी ही समस्या को लेकर आया हूं और अंत में यह कुछ पुरानी निर्भरताओं का मामला था जो मेरे हरकोको सर्वर को गड़बड़ कर रहे थे।

मेरे प्रोजेक्ट के फ़ोल्डर में रहते समय मैंने चलाया:

npm uninstall
npm install

मुझे उम्मीद है यह मदद करेगा


0

npm ERR! Error: ENOENT, open '/Users/feelexit/package.json'

ऐसा तब होता है जब npm काम कर रहा था, गुम हुई अनुमतियों या अनलिंक की गई फ़ाइलों के कारण।

मतलब, कि npmइस मामले को निष्पादित करने के लिए पर्याप्त अधिकार नहीं है कि वह इस मामले में किसी फ़ाइल से पढ़ / लिख सके, इस मामले में पैकेज। Json।

sudoपूरे कमांड से पहले जोड़ने का प्रयास करें - इसे हल करना चाहिए।

$ sudo npm install -g express
$ Password:*******

पासवर्ड आपके मैक का व्यवस्थापक पासवर्ड होगा।

-gध्वज इस मॉड्यूल (एक्सप्रेस) को नोड के वैश्विक संदर्भ में स्थापित करेगा - जिसका अर्थ है नोड को expressकिसी भी js फ़ाइल के भीतर मॉड्यूल का उपयोग करने के लिए एक पूर्ण पथ प्रदान किए बिना पहचानना चाहिए ।

उम्मीद है की यह मदद करेगा!!


0

मुझे भी यही समस्या थी। मेरा मुद्दा यह था कि मुझे एक्सप्रेस स्थापित करने से पहले कमांड लाइन पर Node.js परियोजना निर्देशिका में बदलना होगा।

cd /Users/feelexit/WebstormProjects/learnnode/node_modules/

0

मैं अनुमान लगा रहा हूं कि यह Colt Steele के वेब डेवलपमेंट कोर्स से कोर्सवर्क है ... मैं उसी उत्तर की तलाश में था कि मैं उस त्रुटि को भी क्यों समाप्त करता हूं .. Colt ऐसा नहीं कहता है लेकिन आप नोड_मॉडल फ़ोल्डर ले जाते हैं और आगे बढ़ते हैं आप जिस नए फ़ोल्डर में काम कर रहे हैं ... वही मेरे लिए काम कर रहा है।


0
D:\learn\Node.js\node app.js
module.js:549
    throw err;
    ^

Error: Cannot find module 'body-parser'
    at Function.Module._resolveFilename (module.js:547:15)
    at Function.Module._load (module.js:474:25)
    at Module.require (module.js:596:17)
    at require (internal/module.js:11:18)

कभी-कभी संस्करण package.json के साथ मेल नहीं खाता है। पैकेज की जाँच करके समस्या का समाधान किया। json तब निम्न आदेशों का उपयोग करें: npm स्थापित body-parser@1.13.2 यह मेरे लिए हल।


0

आपने कोशिश की है

npm install

यदि आप विशेष रूप से सिर्फ एक्सप्रेस के लिए देख रहे हैं

npm install --save express
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.