Analisis kaedah penggunaan kod berasaskan modul dan pakej Node.js_node.js

WBOY
Lepaskan: 2016-05-16 15:15:22
asal
1204 orang telah melayarinya

Peraturan resolusi laluan modul

Pengaturcara C yang berpengalaman bermula dengan fail make apabila menulis program baharu. Begitu juga, sebelum menggunakan NodeJS untuk menulis program, untuk mendapatkan permulaan yang baik, anda perlu terlebih dahulu menyediakan struktur direktori dan kaedah penggunaan kod, sama seperti membina perancah dahulu semasa membaiki rumah. Bab ini akan memperkenalkan pelbagai ilmu berkaitan.

Peraturan peleraian laluan modul
Kita sudah tahu bahawa fungsi require menyokong laluan mutlak bermula dengan garis miring (/) atau huruf pemacu (C:), dan juga menyokong laluan relatif bermula dengan ./. Walau bagaimanapun, kedua-dua laluan ini mewujudkan hubungan gandingan yang kuat antara modul Setelah lokasi penyimpanan fail modul perlu diubah, kod modul lain yang menggunakan modul ini juga perlu dilaraskan dengan sewajarnya, yang menjadi masalah untuk seluruh badan. . Oleh itu, fungsi memerlukan menyokong bentuk laluan ketiga, ditulis sama dengan foo/bar, dan menghuraikan laluan mengikut peraturan berikut secara bergilir-gilir sehingga lokasi modul ditemui.

Modul terbina dalam

Jika nama yang dihantar kepada fungsi memerlukan ialah nama modul terbina dalam NodeJS, analisis laluan tidak akan dilakukan dan objek modul dalaman yang dieksport akan dikembalikan terus, seperti require('fs').

direktori modul_node

NodeJS mentakrifkan direktori node_modules khas untuk menyimpan modul. Sebagai contoh, laluan mutlak modul ialah /home/user/hello.js Apabila kaedah require('foo/bar') digunakan untuk memuatkan modul dalam modul, NodeJS akan cuba menggunakan laluan berikut dalam urutan. .

 /home/user/node_modules/foo/bar
 /home/node_modules/foo/bar
 /node_modules/foo/bar
Salin selepas log masuk

NODE_PATH pembolehubah persekitaran

Sama seperti pembolehubah persekitaran PATH, NodeJS membenarkan menentukan laluan carian modul tambahan melalui pembolehubah persekitaran NODE_PATH. Pembolehubah persekitaran NODE_PATH mengandungi satu atau lebih laluan direktori Laluan dipisahkan oleh : di bawah Linux dan ; Sebagai contoh, pembolehubah persekitaran NODE_PATH berikut ditakrifkan:

NODE_PATH=/home/user/lib:/home/lib
Apabila menggunakan require('foo/bar') untuk memuatkan modul, NodeJS mencuba laluan berikut mengikut turutan.

 /home/user/lib/foo/bar
 /home/lib/foo/bar

Salin selepas log masuk

Pek

Kita sudah tahu bahawa unit asas modul JS ialah satu fail JS, tetapi modul yang lebih kompleks selalunya terdiri daripada berbilang sub-modul. Untuk memudahkan pengurusan dan penggunaan, kita boleh memanggil modul besar yang terdiri daripada berbilang sub-modul sebagai pakej, dan meletakkan semua sub-modul dalam direktori yang sama.

Di antara semua sub-modul yang membentuk pakej, perlu ada modul kemasukan, dan objek eksport modul kemasukan digunakan sebagai objek eksport pakej. Sebagai contoh, terdapat struktur direktori berikut.

- /home/user/lib/
  - cat/
    head.js
    body.js
    main.js
Salin selepas log masuk

Direktori kucing mentakrifkan pakej, yang mengandungi 3 sub-modul. main.js berfungsi sebagai modul kemasukan dan kandungannya adalah seperti berikut:

var head = require('./head');
var body = require('./body');

exports.create = function (name) {
  return {
    name: name,
    head: head.create(),
    body: body.create()
  };
};

Salin selepas log masuk

Apabila menggunakan pakej dalam modul lain, anda perlu memuatkan modul kemasukan pakej tersebut. Meneruskan contoh di atas, menggunakan require('/home/user/lib/cat/main') boleh mencapai matlamat, tetapi nampaknya bukan idea yang baik jika nama modul kemasukan muncul dalam laluan. Oleh itu, kita perlu melakukan sedikit kerja tambahan untuk menjadikan pakej berkelakuan lebih seperti satu modul.

index.js
Apabila nama fail modul ialah index.js, semasa memuatkan modul, anda boleh menggunakan laluan direktori di mana modul terletak dan bukannya laluan fail modul Oleh itu, mengikut contoh di atas, dua yang berikut pernyataan adalah setara.

var cat = require('/home/user/lib/cat');
var cat = require('/home/user/lib/cat/index');
Salin selepas log masuk

Selepas memproses dengan cara ini, anda hanya perlu menghantar laluan direktori pakej ke fungsi yang diperlukan. Rasanya keseluruhan direktori digunakan sebagai satu modul, memberikan rasa yang lebih holistik.

pakej.json
Jika anda ingin menyesuaikan nama fail dan lokasi storan modul kemasukan, anda perlu memasukkan fail package.json dalam direktori pakej dan nyatakan laluan modul kemasukan di dalamnya. Modul kucing dalam contoh di atas boleh difaktorkan semula seperti berikut.

- /home/user/lib/
  - cat/
    + doc/
    - lib/
      head.js
      body.js
      main.js
    + tests/
    package.json
Salin selepas log masuk

Kandungan package.json adalah seperti berikut.

{
  "name": "cat",
  "main": "./lib/main.js"
}
Salin selepas log masuk

Dengan cara ini, anda juga boleh menggunakan require('/home/user/lib/cat') untuk memuatkan modul. NodeJS akan mencari lokasi modul kemasukan berdasarkan package.json dalam direktori pakej.

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!