node.js: tidak dapat menemukan modul 'request'

92

Saya memasang modul permintaan , dan mendapatkan kesalahan:

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

Saya telah membaca semua posting tentang kesalahan ini, dan memahami bahwa ini karena permintaan modul tidak ditemukan secara global, tetapi saya sudah mencoba 2 saran

npm install request -g

haruskah ini menginstalnya di / usr / loca / bin? karena saya tidak melihatnya di sana.

dan

sudo npm

/ usr / local / lib / node_modules / request -> / Users / soulsonic / dev / sandbox / node_test / request

saya me-restart terminal setelah setiap perintah, tetapi tetap mendapatkan kesalahan modul tidak dapat menemukan.

memperbarui

pasti ada semacam konflik di direktori awal saya, karena "npm install request" tidak menambahkan "request" di bawah node_modules (ada 10 lainnya di sana) .. setelah beralih ke direktori baru itu baru saja berfungsi.

jika saya menjalankannya dengan -g switch, saya melihatnya bing diinstal ke / usr / local / lib / node_modules / request.

sepertinya saya hanya perlu memperbarui profil saya sehingga jalur di atas ditambahkan secara otomatis.

Sonic Soul
sumber

Jawaban:

171

Buka direktori proyek Anda

mkdir TestProject
cd TestProject

Jadikan direktori ini sebagai root dari proyek Anda (ini akan membuat package.jsonfile default )

npm init --yes

Instal modul npm yang diperlukan dan simpan sebagai ketergantungan proyek (akan muncul di package.json)

npm install request --save

Buat test.jsfile di direktori proyek dengan kode dari contoh paket

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.
  }
});

Direktori proyek Anda akan terlihat seperti ini

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

Sekarang jalankan node di dalam direktori proyek Anda

node test.js
glukki
sumber
1
ya, itulah contoh yang saya ikuti. dan saya menjalankan penginstal npm 10 kali sekarang .. dalam proyek pengujian saya dan menggunakan -g flag. saya dapat melihat node_modules di direktori pengujian saya, tetapi permintaan tidak ada di sana .. itu terus memberi saya kesalahan itu ..
Sonic Soul
karena meskipun saya mengalami konflik yang aneh, ini adalah langkah-langkah tepat untuk diikuti. itu berhasil setelah saya melakukannya lagi di direktori baru. Saya menambahkan pembaruan tentang apa yang terjadi pada saya yang mungkin jarang terjadi pada orang lain
Sonic Soul
32

Anda cukup menginstal request secara lokal dalam proyek Anda.

Cukup cdke folder yang berisi file js Anda dan jalankan

npm install request
SLaks
sumber
setelah "npm install request" saya menyalin app.js saya ke folder permintaan dan mencoba menjalankan dari sana dengan hasil yang sama. dan saya perlu menggunakannya dari lebih dari satu proyek.
Sonic Soul
@SonicSoul: Anda salah paham tentang cara kerja paket node. require('request')melihat ke dalam ./node_modules/request, dan di situlah npm installmeletakkannya. Anda harus menjalankan npm installdari direktori root setiap aplikasi, dan Anda tidak boleh menyentuh node_modulesfolder itu sendiri.
SLaks
sebelum berlari npm install request, kamu harus lari npm init. Ikuti petunjuk yang akan dibuat package.jsondi folder proyek Anda. Kemudian jalankan npm install -S requestyang akan menginstal modul permintaan ke dalam folder node_modules serta menambahkan permintaan ke file package.json Anda
Noah
@SLaks apakah itu berarti bahwa setiap kali saya menginstal paket apa pun yang harus saya masukkan ke dalam folder root dan jalankan npm install? untuk semuanya?
Drumnbass
@Drumnbass: Tidak. Menginstal npm installsemua dependensi juga.
SLaks
16

Saya memiliki masalah yang sama, untuk saya npm install request --save memecahkan masalah. Semoga membantu.


sumber
1

Saya mengalami masalah yang sama, berikut cara saya membuatnya bekerja ..

terminal terbuka:

mkdir testExpress
cd testExpress
npm install request

atau

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

sekarang jangan gunakan

node app.jsatau node test.js, Anda akan mengalami masalah ini saat melakukannya. Anda juga dapat mencetak masalah yang menjadi penyebabnya dengan menggunakan perintah ini .."node -p app.js"

Perintah di atas untuk memulai nodeJ sudah tidak digunakan lagi. Sebagai gantinya gunakan

npm start

Anda harus melihat ini ..

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

Buka browser web Anda dan periksa localhost: 3000

Anda harus melihat Instal ekspres (Selamat Datang di Express)

Rakesh Chouhan
sumber
1

Saya telah menemui masalah yang sama saat saya menginstalnya secara global, kemudian saya mencoba menginstalnya secara lokal, dan berhasil.

Jeorge Washington
sumber
1

jika beberapa modul tidak dapat Anda temukan, coba dengan URI Statis, misalnya:

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

Contoh ini, dijalankan di Ubuntu Gnome 16.04 dari 64 bit, node -v: v4.2.6, npm: 3.5.2 Lihat: Blog Ben Nadel

Fabio Andres Pino Gutierrez
sumber
0

ReferenceError: Tidak dapat menemukan variabel: memerlukan.

Anda telah menginstal "npm", Anda dapat menjalankan skrip seperti biasa ke "localhost" "127.0.0.1".

Saat Anda menggunakan http.clientRequest () dengan "options" dalam "npm", Anda perlu menginstal "RequireJS" di dalam modul.

Modul adalah file atau direktori apa pun di direktori node_modules yang dapat dimuat oleh Node. Instal "RequiereJS" untuk membuat http.clientRequest (opsi) berfungsi.

Roberto Aprea
sumber
0

Saya mencoba menginstal modul secara lokal dengan versi dan berhasil !!

npm install request@^2.*

Terima kasih.

shamnas cv
sumber