नोड। जेएस: मॉड्यूल 'अनुरोध' नहीं मिल रहा है


92

मैंने अनुरोध मॉड्यूल स्थापित किया है , और त्रुटि हो रही है:

module.js:340
    throw err;
          ^
Error: Cannot find module 'request'

मैंने इस त्रुटि के बारे में सभी पोस्ट पढ़े हैं, और यह समझता हूं कि ऐसा इसलिए है क्योंकि मॉड्यूल अनुरोध विश्व स्तर पर नहीं मिला है, लेकिन मैंने पहले ही 2 सुझावों की कोशिश की है

npm स्थापित अनुरोध -g

क्या इसे / usr / loca / bin में स्थापित करना चाहिए? क्योंकि मैं इसे वहाँ नहीं देखता।

तथा

sudo npm लिंक

/ usr / स्थानीय / देय / नोड_मॉडल / अनुरोध -> / उपयोगकर्ता / आत्मिक / देव / सैंडबॉक्स / नोड_टेस्ट / अनुरोध

मैंने प्रत्येक कमांड के बाद टर्मिनल को फिर से शुरू किया, लेकिन मॉड्यूल त्रुटि नहीं पा सकता।

अपडेट करें

मेरी आरंभिक निर्देशिका में किसी प्रकार का संघर्ष रहा होगा, क्योंकि "npm install request" नोड_मॉड्यूल्स के तहत "अनुरोध" नहीं जोड़ रही थी (वहाँ 10 अन्य लोग) .. एक नई निर्देशिका पर स्विच करने के बाद बस काम किया।

अगर मैं इसे -g स्विच के साथ चलाता हूं, तो मैं इसे / usr / स्थानीय / lib / node_modules / अनुरोध पर इंस्टॉल किया हुआ देखता हूं।

ऐसा लगता है कि मुझे केवल अपनी प्रोफ़ाइल अपडेट करने की आवश्यकता है ताकि उपरोक्त पथ स्वचालित रूप से जुड़ जाए।

जवाबों:


171

अपनी परियोजना की निर्देशिका पर जाएं

mkdir TestProject
cd TestProject

इस निर्देशिका को अपनी परियोजना का मूल बनाएँ (यह एक डिफ़ॉल्ट package.jsonफ़ाइल बनाएगा )

npm init --yes

आवश्यक एनपीएम मॉड्यूल स्थापित करें और इसे परियोजना निर्भरता के रूप में सहेजें (यह इसमें दिखाई देगा package.json)

npm install request --save

test.jsपैकेज निर्देशिका से कोड के साथ परियोजना निर्देशिका में एक फ़ाइल बनाएँ

var request = require('request');
request('http://www.google.com', function (error, response, body) {
  if (!error && response.statusCode == 200) {
    console.log(body); // Print the google web page.
  }
});

आपकी परियोजना निर्देशिका को इस तरह दिखना चाहिए

TestProject/
- node_modules/
- package.json
- test.js

अब बस अपने प्रोजेक्ट डायरेक्टरी के अंदर नोड चलाएं

node test.js

1
हाँ, यह बिल्कुल उदाहरण है जिसका मैंने अनुसरण किया है। और मैं npm इंस्टॉलर को अब 10 बार चला रहा हूं .. अपने परीक्षण प्रोजेक्ट में और -g फ्लैग का उपयोग कर रहा हूं। मैं अपने परीक्षण निर्देशिका में नोड_मॉड्यूल्स देख सकता हूं, लेकिन अनुरोध वहां नहीं है .. यह मुझे वह त्रुटि देना जारी रखता है ..
सोनिक सोल

क्योंकि भले ही मेरे पास कुछ अजीब संघर्ष था, लेकिन ये पालन करने के लिए सही कदम हैं। यह एक बार काम करने के बाद मैंने इसे एक नई निर्देशिका में फिर से किया। मैंने अपने साथ हुए एक अपडेट को जोड़ा, जो शायद दूसरों के लिए दुर्लभ होगा
सोनिक सोल

32

आपको बस अपनी परियोजना के भीतर request स्थानीय स्तर पर स्थापित करना चाहिए ।

बस cdअपने js फ़ाइल वाले फ़ोल्डर और चलाएं

npm install request

"npm इंस्टाल रिक्वेस्ट" के बाद मैंने अपने app.js को रिक्वेस्ट फोल्डर में कॉपी किया और उसी रिजल्ट के साथ वहां से चलने की कोशिश की। और मुझे इसे केवल एक परियोजना से अधिक से उपयोग करने की आवश्यकता होगी।
सोनिक सोल

@SonicSoul: आप गलत समझ रहे हैं कि नोड पैकेज कैसे काम करते हैं। require('request')में दिखता है ./node_modules/request, और यह वह जगह है जहाँ npm installयह डालता है। आपको npm installप्रत्येक ऐप की रूट डायरेक्टरी से चलना चाहिए , और आपको कभी भी node_modulesफोल्डर को नहीं छूना चाहिए ।
SLaks

दौड़ने से पहले npm install request, आपको दौड़ना चाहिए npm init। उन प्रॉम्प्ट का पालन करें जो package.jsonआपके प्रोजेक्ट फ़ोल्डर में एक बना देगा । फिर चलाएं npm install -S requestजो दोनों नोड में अनुरोध मॉड्यूल को नोड_मॉडल फ़ोल्डर में स्थापित करेगा और साथ ही आपके पैकेज में अनुरोध जोड़ देगा। जेसन फ़ाइल
नूह

@SLaks doest का मतलब है कि हर बार जब भी मुझे कोई पैकेज स्थापित करना होता है तो मुझे उसके रूट फोल्डर में प्रवेश करना होता है और निष्पादित करना होता है npm install? उन सभी के लिए?
ड्रयूमबास

@Drumnbass: नहीं, npm installसभी निर्भरताएं भी स्थापित करता है।
एसएलके

16

मेरे पास एक ही समस्या थी, मेरे npm install request --save लिए समस्या हल हो गई। आशा करता हूँ की ये काम करेगा।


1

मैं एक ही समस्या में चल रहा था, यहाँ है कि मैं इसे कैसे काम कर रहा हूँ ..

खुला टर्मिनल:

mkdir testExpress
cd testExpress
npm install request

या

sudo npm install -g request // If you would like to globally install.

अब उपयोग नहीं करते

नोड app.jsया नोड test.js, आप ऐसा करने में इस समस्या में भाग लेंगे। आप इस आदेश का उपयोग करके होने वाली समस्या को भी मुद्रित कर सकते हैं।"node -p app.js"

नोडज शुरू करने के लिए उपर्युक्त कमांड को हटा दिया गया है। इसके बजाय उपयोग करें

npm start

आपको यह देखना चाहिए ।।

testExpress@0.0.0 start /Users/{username}/testExpress
node ./bin/www

अपना वेब ब्राउज़र खोलें और स्थानीयहोस्ट के लिए जांचें: 3000

आपको एक्सप्रेस इंस्टॉल (एक्सप्रेस में आपका स्वागत है) देखना चाहिए


1

मैं उसी समस्या से मिला हूं जैसे मैं इसे विश्व स्तर पर स्थापित करता हूं, फिर मैं इसे स्थानीय रूप से स्थापित करने का प्रयास करता हूं, और यह काम करता है।


1

यदि कुछ मॉड्यूल आपको नहीं मिलेंगे, तो उदाहरण के लिए, स्टेटिक URI के साथ प्रयास करें:

var Mustache = require("/media/fabio/Datos/Express/2_required_a_module/node_modules/mustache/mustache.js");

यह उदाहरण, 64 बिट्स के Ubuntu ग्नोम 16.04 पर चलता है, नोड -v: v4.2.6, npm: 3.5.2 देखें: बेन नडेल का ब्लॉग


0

संदर्भ: चर नहीं मिल सकता है: की आवश्यकता है।

आपने "एनपीएम" स्थापित किया है, आप स्क्रिप्ट को "लोकलहोस्ट" "127.0.0.1" पर सामान्य रूप से चला सकते हैं।

जब आप "npm" में "विकल्प" के साथ http.clientRequest () का उपयोग करते हैं, तो आपको मॉड्यूल के अंदर "आवश्यकताएँ" स्थापित करने की आवश्यकता होती है।

एक नोड नोड_मॉड्यूल निर्देशिका में कोई फ़ाइल या निर्देशिका है जिसे नोड द्वारा लोड किया जा सकता है। Http.clientRequest (विकल्प) बनाने के लिए "RequiereJS" स्थापित करें।


0

मैंने संस्करण के साथ स्थानीय रूप से मॉड्यूल को स्थापित करने की कोशिश की और यह काम कर गया !!

npm install request@^2.*

धन्यवाद।

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