Jadual Kandungan
Hubungan antara modul.eksport dan eksport
Perbandingan antara eksport dan modul.eksport
Senario penggunaan eksport dan modul.eksport
Ringkasan

penggunaan eksport nodejs

May 14, 2023 am 10:31 AM

Node.js ialah bahasa pengaturcaraan berdasarkan enjin Chrome V8 yang membolehkan JavaScript dijalankan pada pelayan Ia boleh menggunakan modul dan pakej untuk mengatur program dan mengurus kebergantungan dengan mudah. Antaranya, module.exports dan exports adalah konsep yang biasa digunakan dalam pemodulatan Artikel ini akan memperkenalkan penggunaannya dalam Node.js.

Hubungan antara modul.eksport dan eksport

Dalam Node.js, setiap fail ialah modul bebas Jika anda ingin menggunakan pembolehubah dan fungsi dalam fail dalam modul lain, anda perlukan untuk Mengeksportnya. Kedua-dua pembolehubah module.exports dan exports boleh dieksport.

Dalam Node.js, setiap modul mempunyai objek module, yang mengandungi maklumat berkaitan modul, termasuk atribut exports. exportsLekapkan pembolehubah atau fungsi untuk dieksport pada sifat ini, dan kemudian rujuk modul secara luaran melalui fungsi require() dan panggil pembolehubah dan fungsinya yang dieksport.

Secara lalai, exports menunjuk kepada rujukan module.exports, jadi eksport modul boleh dilakukan melalui kedua-dua exports dan module.exports Walau bagaimanapun, perlu diperhatikan bahawa hubungan penunjuk antara kedua-duanya tidak selalu sama. Perkara yang sama membawa kepada fakta bahawa kadangkala kita perlu menggunakan module.exports dan bukannya exports.

Perbandingan antara eksport dan modul.eksport

Apabila kami menggunakan exports untuk mengeksport objek, kami sebenarnya menambah atribut kepada exports dan menetapkan nilai. Contohnya:

// add.js
exports.add = function (a, b) {
  return a + b;
}
Salin selepas log masuk

Dalam kod di atas, kami menggunakan exports untuk mengeksport kaedah add(). Ia bersamaan dengan melaksanakan kod berikut:

exports.add = function (a, b) {
  return a + b;
}

module.exports = exports; // exports被默认指向module.exports
Salin selepas log masuk

Seterusnya, mari kita lihat contoh:

// math.js
exports.add = function (a, b) {
  return a + b;
};

exports.sub = function (a, b) {
  return a - b;
};

// app.js
const math = require('./math');
console.log(math.add(1, 1)); // 2
console.log(math.sub(1, 1)); // 0
Salin selepas log masuk

merujuk modul require() melalui fungsi math dan memanggil kaedah yang dieksport, dan hasilnya adalah output dengan betul. Kenapa betul?

Kami tahu bahawa exports menunjuk ke module.exports secara lalai, dan apabila kami terus menuding exports ke objek baharu, hubungan penunjuk module.exports telah ditukar. Apabila Node.js memuatkan modul, ia sebenarnya mengembalikan objek module.exports dan bukannya objek exports, jadi selepas menunjuk exports ke objek baharu, dan kemudian menggunakan objek baharu sebagai nilai module.exports, Ia adalah operasi eksport sebenar.

exports = {
  add: function (a, b) {
    return a + b;
  },
  sub: function (a, b) {
    return a - b;
  },
}

module.exports = exports;
Salin selepas log masuk

Nota: Jika anda hanya menetapkan semula atribut exports, ia tidak akan mengubah hubungan penunjuk antaranya dan module.exports.

Contohnya:

// multiply.js
exports = {
  mul: function (a, b) {
    return a * b;
  }
}

// app.js
const multiply = require('./multiply');
console.log(multiply.mul(2, 5)); // TypeError: multiply.mul is not a function
Salin selepas log masuk

Dalam kod di atas, exports menunjuk ke objek baharu, tetapi sifatnya tidak diberikan, jadi nilai yang dieksport ialah undefined, jadi dalam A TypeError akan berlaku apabila memanggil.

Senario penggunaan eksport dan modul.eksport

Dalam kebanyakan kes, kami boleh terus menggunakan exports untuk mengeksport modul. Tetapi kadangkala, kita perlu mengeksport fungsi atau objek terus daripada modul dan bukannya memasangnya pada exports Dalam kes ini, kita perlu menggunakan module.exports.

Contohnya:

// foo.js
module.exports = function () {
  console.log('Hello World!')
}

// app.js
const foo = require('./foo');
foo(); // Hello World!
Salin selepas log masuk

Dalam kod di atas, memberikan terus fungsi kepada module.exports sebenarnya menggunakan fungsi sebagai objek eksport keseluruhan modul.

Ringkasan

Eksport dan modul.eksport ialah pembolehubah yang digunakan untuk mengeksport modul dalam Node.js, ia harus diperhatikan yang mengeksport menghala ke module.exports secara lalai, dan hubungannya tidak selalu menghala ke objek yang sama, jadi kadangkala kita perlu menggunakan module.exports dan bukannya eksport. Apabila memilih untuk menggunakan eksport dan modul.eksport ke modul eksport, anda boleh memilih mengikut situasi sebenar.

Atas ialah kandungan terperinci penggunaan eksport nodejs. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Peranan React dalam HTML: Meningkatkan Pengalaman Pengguna Peranan React dalam HTML: Meningkatkan Pengalaman Pengguna Apr 09, 2025 am 12:11 AM

React menggabungkan JSX dan HTML untuk meningkatkan pengalaman pengguna. 1) JSX membenamkan HTML untuk menjadikan pembangunan lebih intuitif. 2) Mekanisme DOM maya mengoptimumkan prestasi dan mengurangkan operasi DOM. 3) UI pengurusan berasaskan komponen untuk meningkatkan kebolehkerjaan. 4) Pengurusan negeri dan pemprosesan acara meningkatkan interaktiviti.

Komponen React: Membuat unsur -unsur yang boleh diguna semula di HTML Komponen React: Membuat unsur -unsur yang boleh diguna semula di HTML Apr 08, 2025 pm 05:53 PM

Komponen React boleh ditakrifkan oleh fungsi atau kelas, merangkumi logik UI dan menerima data input melalui prop. 1) Tentukan komponen: Gunakan fungsi atau kelas untuk mengembalikan elemen bertindak balas. 2) Rendering Component: React Call Render Kaedah atau Melaksanakan Komponen Fungsi. 3) Komponen multiplexing: Lulus data melalui prop untuk membina UI yang kompleks. Pendekatan kitaran hayat komponen membolehkan logik dilaksanakan pada peringkat yang berbeza, meningkatkan kecekapan pembangunan dan pemeliharaan kod.

Apakah batasan sistem kereaktifan Vue 2 berkenaan dengan perubahan array dan objek? Apakah batasan sistem kereaktifan Vue 2 berkenaan dengan perubahan array dan objek? Mar 25, 2025 pm 02:07 PM

Sistem Reaktiviti Vue 2 bergelut dengan tetapan indeks array langsung, pengubahsuaian panjang, dan penambahan/penghapusan harta benda objek. Pemaju boleh menggunakan kaedah mutasi Vue dan vue.set () untuk memastikan kereaktifan.

React and the Frontend: Membina Pengalaman Interaktif React and the Frontend: Membina Pengalaman Interaktif Apr 11, 2025 am 12:02 AM

React adalah alat pilihan untuk membina pengalaman front-end interaktif. 1) React memudahkan pembangunan UI melalui komponen dan DOM maya. 2) Komponen dibahagikan kepada komponen fungsi dan komponen kelas. Komponen fungsi adalah lebih mudah dan komponen kelas menyediakan lebih banyak kaedah kitaran hayat. 3) Prinsip kerja React bergantung kepada algoritma DOM dan perdamaian maya untuk meningkatkan prestasi. 4) Pengurusan negeri menggunakan useState atau ini. Kaedah kitaran hayat seperti ComponentDidMount digunakan untuk logik tertentu. 5) Penggunaan asas termasuk membuat komponen dan pengurusan negeri, dan penggunaan lanjutan melibatkan cangkuk tersuai dan pengoptimuman prestasi. 6) Kesalahan biasa termasuk kemas kini status yang tidak betul dan isu prestasi, kemahiran debugging termasuk menggunakan reactdevtools dan sangat baik

Apakah faedah menggunakan TypeScript dengan React? Apakah faedah menggunakan TypeScript dengan React? Mar 27, 2025 pm 05:43 PM

TypeScript meningkatkan pembangunan React dengan menyediakan keselamatan jenis, meningkatkan kualiti kod, dan menawarkan sokongan IDE yang lebih baik, dengan itu mengurangkan kesilapan dan meningkatkan kebolehkerjaan.

Bagaimanakah anda boleh menggunakan UserEducer untuk Pengurusan Negeri Kompleks? Bagaimanakah anda boleh menggunakan UserEducer untuk Pengurusan Negeri Kompleks? Mar 26, 2025 pm 06:29 PM

Artikel ini menerangkan menggunakan UserEducer untuk Pengurusan Negeri Kompleks dalam React, memperincikan manfaatnya ke atas UseState dan bagaimana untuk mengintegrasikannya dengan useeffect untuk kesan sampingan.

Apakah komponen berfungsi dalam vue.js? Bilakah mereka berguna? Apakah komponen berfungsi dalam vue.js? Bilakah mereka berguna? Mar 25, 2025 pm 01:54 PM

Komponen fungsional dalam vue.js adalah cangkuk kitaran hidup, ringan, dan kekurangan kitaran, sesuai untuk memberikan data tulen dan mengoptimumkan prestasi. Mereka berbeza daripada komponen yang berkesudahan dengan tidak mempunyai keadaan atau kereaktifan, menggunakan fungsi render secara langsung, a

Bagaimana anda memastikan bahawa komponen React anda boleh diakses? Alat apa yang boleh anda gunakan? Bagaimana anda memastikan bahawa komponen React anda boleh diakses? Alat apa yang boleh anda gunakan? Mar 27, 2025 pm 05:41 PM

Artikel ini membincangkan strategi dan alat untuk memastikan komponen React boleh diakses, memberi tumpuan kepada HTML semantik, atribut ARIA, navigasi papan kekunci, dan kontras warna. Ia mengesyorkan menggunakan alat seperti ESLINT-PLUGIN-JSX-A11Y dan AXE-CORE untuk TESTI

See all articles