Saya sedang menulis server sederhana untuk Node.js dan saya menggunakan kelas saya sendiri yang disebut User
yang terlihat seperti:
function User(socket) {
this.socket = socket;
this.nickname = null;
/* ... just the typical source code like functions, variables and bugs ... */
this.write = function(object) {
this.socket.write(JSON.stringify(object));
}
};
dan kemudian dalam prosesnya, saya sering memberi contoh:
var server = net.createServer(function (socket) {
/* other bugs */
var user = new User(socket);
/* more bugs and bad practise */
});
Dapatkah saya memindahkan User
definisi kelas saya ke file javascript lain dan "menyertakan" entah bagaimana?
sumber
User
adalah fungsi js biasa.module.exports = new User();
Ini akan membuat instance Pengguna baru setiap kali modul diperlukan. Maka Anda hanya dapat memerlukan modul untuk setiap variabel seperti ini:let user = require('./user.js');
.Menggunakan ES6, Anda dapat memiliki
user.js
:Dan kemudian gunakan di
server.js
sumber
SyntaxError: Unexpected token export
ketika saya melakukan seperti yang Anda jelaskan ... saya memiliki versi nodev10.16.3
Ubah definisi kelas Anda menjadi seperti ini:
Kemudian ganti nama file menjadi
user.js
. Dengan asumsi itu ada di direktori root dari skrip utama Anda, Anda dapat memasukkannya seperti ini:Itu versi cepat dan kotor. Baca tentang Modul CommonJS jika Anda ingin mempelajari lebih lanjut.
sumber
Cara lain selain yang disediakan di sini untuk ES6
dan menyertakan sama seperti
sumber
Jika Anda menambahkan ini ke
user.js
:maka di dalam
server.js
kamu bisa melakukan:http://nodejs.org/docs/v0.4.10/api/globals.html#require
Cara lainnya adalah:
maka ini akan cukup di
server.js
:sumber
Saya hanya ingin menunjukkan bahwa sebagian besar jawaban di sini tidak berfungsi, saya baru mengenal NodeJS dan IDK jika sepanjang waktu metode "module.exports.yourClass" berubah, atau jika orang memasukkan jawaban yang salah.
sumber
Alih-alih myFile.js tulis file Anda seperti myFile.mjs. Ekstensi ini hadir dengan semua kebaikan es6, tapi maksud saya saya merekomendasikan Anda kepada Anda webpack dan Babel
sumber