Apa yang saya coba capai adalah membuat satu modul yang berisi banyak fungsi di dalamnya.
module.js:
module.exports = function(firstParam) { console.log("You did it"); },
module.exports = function(secondParam) { console.log("Yes you did it"); },
// This may contain more functions
main.js:
var foo = require('module.js')(firstParam);
var bar = require('module.js')(secondParam);
Masalah yang saya miliki adalah bahwa firstParam
ini adalah tipe objek dan secondParam
string URL, tetapi ketika saya memilikinya selalu mengeluh bahwa tipenya salah.
Bagaimana saya bisa mendeklarasikan beberapa module.exports dalam kasus ini?
Jawaban:
Anda dapat melakukan sesuatu seperti:
Atau hanya:
Kemudian dalam skrip panggilan:
sumber
module.exports = {}
dan tidakmodule.method = ...
. stackoverflow.com/a/26451885/155740module.method
mana saja di sini ... hanyaexports.method
, yang hanya referensimodule.exports.method
, jadi berperilaku dengan cara yang sama. Satu-satunya perbedaan adalah kita tidak mendefinisikanmodule.exports
, jadi defaultnya adalah{}
, kecuali saya salah.var otherMethod = require('module.js')(otherMethod);
? Yaitu, akan baris yang memerlukanotherMethod
fungsi sama seperti jika itu adalah satu-satunya fungsi pada halaman dan ekspor telah:module.exports = secondMethod;
?var otherMethod = require('module.js').otherMethod
.Untuk mengekspor beberapa fungsi, Anda dapat mencantumkannya seperti ini:
Dan kemudian untuk mengaksesnya di file lain:
Dan kemudian Anda dapat memanggil setiap fungsi dengan memanggil:
sumber
require("./lib/file.js")
? Saya perlu menggunakanrequire("../../lib/file.js")
, kalau tidak itu tidak akan berhasil.const { function1, function2, function3 } = require("./lib/file.js")
yang memungkinkan Anda untuk memanggil mereka secara langsung (misalnya,function1
bukanmyFunctions.function1
)selain jawaban @mash saya sarankan Anda untuk selalu melakukan hal berikut:
Perhatikan di sini:
method
dariotherMethod
dan Anda akan membutuhkan ini banyakAnda juga dapat menggunakan teknik yang sama untuk impor:
const {otherMethod} = require('./myModule.js');
sumber
Ini hanya untuk referensi saya karena apa yang saya coba capai dapat dicapai dengan ini.
Dalam
module.js
Kita bisa melakukan sesuatu seperti ini
Dalam
main.js
sumber
module.js:
main.js:
sumber
Jika file ditulis menggunakan ekspor ES6, Anda dapat menulis:
sumber
Salah satu cara yang dapat Anda lakukan adalah membuat objek baru dalam modul alih-alih menggantinya.
sebagai contoh:
dan untuk menelepon
sumber
Anda dapat menulis fungsi yang secara manual mendelegasikan antara fungsi lain:
sumber
Gunakan ini
sumber
Dua jenis modul impor dan ekspor.
tipe 1 (module.js):
tipe 1 (main.js):
tipe 2 (module.js):
tipe 2 (main.js):
Bagaimana cara menggunakan modul impor?
sumber
Anda juga dapat mengekspornya seperti ini
atau untuk fungsi anonim seperti ini
sumber
module1.js:
main.js
sumber
Ada banyak cara untuk melakukan ini, satu cara disebutkan di bawah ini. Anggap saja Anda memiliki file .js seperti ini.
Anda dapat mengekspor fungsi-fungsi ini menggunakan cuplikan kode berikut,
Dan Anda dapat menggunakan fungsi yang diekspor menggunakan potongan kode ini,
Saya tahu ini adalah jawaban yang terlambat, tetapi harap ini membantu!
sumber
sumber
Jika Anda mendeklarasikan kelas dalam file modul alih-alih objek sederhana
File: UserModule.js
File Utama: index.js
sumber
Anda dapat menggunakan pendekatan ini juga
atau
sumber
Menambahkan di sini untuk seseorang untuk membantu:
blok kode ini akan membantu menambahkan beberapa plugin ke dalam cypress index.js Plugins -> cypress-ntlm-auth dan cypress env pemilihan file
sumber