Node.js obyek global
JavaScript memiliki objek khusus, yang disebut obyek global (Object Global), dan semua atributnya dapat diakses di mana saja dalam program, variabel global.
Browser JavaScript biasanya bersifat global objek window, obyek global Node.js adalah global, semua variabel global (kecuali dirinya global) adalah milik dari obyek global.
Di Node.js kita akses langsung ke properti global, tanpa perlu untuk memasukkannya ke dalam aplikasi.
objek global dan variabel global
Yang paling mendasar peran global sebagai variable host global. Dengan ECMAScript definisi memenuhi kondisi berikut variabel global:
- Terluar didefinisikan variabel;
- Properti dari objek global;
- Variabel yang didefinisikan secara implisit (tugas langsung variabel terdefinisi).
Ketika anda mendefinisikan variabel global, variabel juga akan menjadi milik obyek global, dan sebaliknya. Perhatikan bahwa, dalam Node.js Anda tidak dapat menentukan variabel dalam terluar, karena semua kode pengguna adalah bagian dari modul saat ini, dan modul itu sendiri tidak konteks terluar.
Catatan: selalu menggunakan var untuk mendefinisikan variabel untuk menghindari pengenalan variabel global, karena variabel global akan mencemari namespace, meningkatkan risiko kode kopling.
__filename
__filename menunjukkan nama file dari script yang saat ini sedang dijalankan.path absolut ke lokasi di mana itu akan menjadi file output, dan parameter baris perintah dan menentukan nama file belum tentu sama. Jika dalam modul, nilai yang dikembalikan adalah path ke file modul.
contoh
Buat file main.js, kode sebagai berikut:
// 输出全局变量 __filename 的值 console.log( __filename );
File main.js eksekutif, kode tersebut adalah sebagai berikut:
$ node main.js /web/com/w3big/nodejs/main.js
__dirname
__dirname merupakan direktori skrip saat ini melaksanakan berada.
contoh
Buat file main.js, kode sebagai berikut:
// 输出全局变量 __dirname 的值 console.log( __dirname );
File main.js eksekutif, kode tersebut adalah sebagai berikut:
$ node main.js /web/com/w3big/nodejs
setTimeout (cb, ms)
setTimeout (cb, ms) fungsi global melakukan fungsi tertentu setelah sejumlah tertentu milidetik (ms) Nomor (cb).: SetTimeout () function ditentukan hanya sekali.
Ia mengembalikan nilai pegangan mewakili timer.
contoh
Buat file main.js, kode sebagai berikut:
function printHello(){ console.log( "Hello, World!"); } // 两秒后执行以上函数 setTimeout(printHello, 2000);
File main.js eksekutif, kode tersebut adalah sebagai berikut:
$ node main.js Hello, World!
clearTimeout (t)
clearTimeout (t) digunakan untuk menghentikan fungsi global sebelum melewati setTimeout () untuk membuat timer.Parametert oleh setTimeout () fungsi untuk membuat kalkulator.
contoh
Buat file main.js, kode sebagai berikut:
function printHello(){ console.log( "Hello, World!"); } // 两秒后执行以上函数 var t = setTimeout(printHello, 2000); // 清除定时器 clearTimeout(t);
File main.js eksekutif, kode tersebut adalah sebagai berikut:
$ node main.js
setInterval (cb, ms)
setInterval (cb, ms) fungsi global melakukan fungsi tertentu setelah sejumlah tertentu milidetik (ms) Nomor (cb).
Ia mengembalikan nilai pegangan mewakili timer. Anda dapat menggunakan fungsiclearInterval (t) untuk menghapus timer.
Metode setInterval () akan terus memanggil fungsi sampai clearInterval () disebut atau jendela ditutup.
contoh
Buat file main.js, kode sebagai berikut:
function printHello(){ console.log( "Hello, World!"); } // 两秒后执行以上函数 setInterval(printHello, 2000);
File main.js eksekutif, kode tersebut adalah sebagai berikut:
$ node main.jsHello, World! Hello, World! Hello, World! Hello, World! Hello, World! ......
Program di atas akan menampilkan setiap dua detik "Hello, World!", Dan akan secara permanen eksekusi terus sampai Anda menekanctrl + c tombol.
konsol
konsol konsol untuk menyediakan output standar, yang merupakan alat debugging yang disediakan oleh mesin JScript Internet Explorer, kemudian menjadi browser standar de facto.
Node.js mengikuti standar ini, memberikan perilaku dan kebiasaan dari objek konsol digunakan untuk stream output standar (stdout) atau aliran standard error (stderr) karakter keluaran yang konsisten.
metode konsol
Berikut ini adalah objek konsol:
Tidak. | Metode & deskripsi |
---|---|
1 | console.log ([data] [, ... ]) Untuk karakter pencetakan standar keluaran dan akhir dengan baris baru. Metode ini membutuhkan waktu beberapa parameter, jika hanya ada satu parameter, string output parameter ini. Jika ada beberapa argumen, tempat-tempat seperti bahasa C printf () format output perintah. |
2 | console.info ([data] [, ... ]) P adalah peran perintah mengembalikan pesan informasi, perintahnya adalah perbedaan console.log tidak besar, selain chrome akan output hanya teks, sisanya akan menunjukkan tanda seru biru. |
3 | console.error ([data] [, ... ]) Output pesan kesalahan. Konsol akan ditampilkan dalam warna merah ketika terjadi kesalahan garpu. |
4 | console.warn ([data] [, ... ]) Peringatan pesan adalah output. Konsol muncul dengan tanda seru berwarna kuning. |
5 | console.dir (obj [Opsi]) Sebuah benda yang digunakan untuk memeriksa (memeriksa), dan mudah-untuk-membaca layar dan cetak format. |
6 | console.time (label) Output dari waktu, waktu mulai. |
7 | console.timeEnd (label) End waktu, menunjukkan akhir waktu. |
8 | console.trace (pesan [...]) Kode saat ini mengeksekusi jalan panggilan di stack, menjalankan fungsi tes ini membantu, hanya ingin menguji fungsi yang bergabung console.trace di telepon. |
9 | console.assert (nilai [, pesan] [ , ...]) Untuk menentukan apakah suatu variabel atau ekspresi benar, butuh dua parameter, parameter pertama adalah ekspresi dan argumen kedua adalah string. Hanya ketika argumen pertama adalah palsu, output akan menjadi argumen kedua, itu tidak akan menghasilkan apa-apa. |
console.log menerima beberapa parameter, jika hanya ada satu parameter, string output parameter ini. Jika ada beberapa argumen, tempat-tempat seperti bahasa C printf () format output perintah.
Parameter pertama adalah string, tanpa parameter, hanya mencetak baris baru.
console.log('Hello world'); console.log('byvoid%diovyb'); console.log('byvoid%diovyb', 1991);
hasil operasi sebagai berikut:
Hello world byvoid%diovyb byvoid1991iovyb
- console.error (): dengan console.log () menggunakan sama, namun output pada stream kesalahan standar.
- console.trace (): stream kesalahan ke output standar panggilan saat stack.
console.trace();
hasil operasi sebagai berikut:
Trace: at Object.<anonymous> (/home/byvoid/consoletrace.js:1:71) at Module._compile (module.js:441:26) at Object..js (module.js:459:10) at Module.load (module.js:348:31) at Function._load (module.js:308:12) at Array.0 (module.js:479:10) at EventEmitter._tickCallback (node.js:192:40)
contoh
Buat file main.js, kode sebagai berikut:
console.info("程序开始执行:"); var counter = 10; console.log("计数: %d", counter); console.time("获取数据"); // // 执行一些代码 // console.timeEnd('获取数据'); console.info("程序执行完毕。")
File main.js eksekutif, kode tersebut adalah sebagai berikut:
$ node main.js 程序开始执行: 计数: 10 获取数据: 0ms 程序执行完毕
proses
Proses adalah variabel global yang atribut obyek global.
Hal ini digunakan untuk menggambarkan keadaan saat proses Node.js objek, ia menyediakan antarmuka yang sederhana untuk sistem operasi. Biasanya Anda menulis program baris perintah asli, dan akhirnya, untuk menghadapinya. Berikut ini akan memperkenalkan beberapa metode yang paling umum digunakan dari proses anggota objek.
Tidak. | Acara & Deskripsi |
---|---|
1 | keluar Kebakaran saat proses siap untuk berhenti. |
2 | beforeExit Acara ini dipicu ketika node kosong loop acara, dan tidak ada pengaturan lainnya. Umumnya, ketika tidak ada proses untuk mengatur keluar node, tapi pendengar 'beforeExit' bisa disebut asynchronous, sehingga node yang akan terus berlanjut. |
3 | uncaughtException Ketika pengecualian menggelegak kembali ke loop acara, memicu acara ini. Jika Anda menambahkan monitor untuk pengecualian, aksi default (mencetak setumpuk jejak dan keluar) tidak akan terjadi. |
4 | Sinyal dipicu ketika acaraSitus ketika proses menerima sinyal. Lihat daftar nama sinyal POSIX standar sinyal seperti SIGINT, SIGUSR1 dan sebagainya. |
contoh
Buat file main.js, kode sebagai berikut:
process.on('exit', function(code) { // 以下代码永远不会执行 setTimeout(function() { console.log("该代码不会执行"); }, 0); console.log('退出码为:', code); }); console.log("程序执行结束");
File main.js eksekutif, kode tersebut adalah sebagai berikut:
$ node main.js 程序执行结束 退出码为: 0
Kode status exit
Kode Status | Judul & Deskripsi |
---|---|
1 | Tertangkap Exception Fatal Ada tertangkap pengecualian, dan belum diproses atau domain uncaughtException handler. |
2 | terpakai penyimpanan |
3 | Internal Kesalahan JavaScript Parse kode sumber JavaScript parsing kesalahan yang disebabkan ketika memulai proses Node. Sangat jarang, hanya ketika akan ada dalam pengembangan Node. |
4 | Internal Kegagalan Evaluasi JavaScript JavaScript proses startup sumber Node, ketika mengevaluasi fungsi mengembalikan kegagalan. Sangat jarang, hanya ketika akan ada dalam pengembangan Node. |
5 | Kesalahan Fatal V8 kesalahan tidak terpulihkan fatal. Biasanya mencetak ke stderr, konten: ERROR FATAL |
6 | Non-fungsi Exception internal Handler eksepsi tidak tertangkap, kecuali handler dalam entah bagaimana mengatur on-fungsi, dan tidak bisa disebut. |
7 | Exception internal Handler Run-Time Kegagalan eksepsi tidak tertangkap, dan pengecualian handler untuk menangani mereka sendiri melempar pengecualian. Misalnya, jika process.on ( 'uncaughtException') atau domain.on ( 'error') melempar pengecualian. |
8 | terpakai penyimpanan |
9 | Argumen tidak valid Ini mungkin tidak diketahui dengan parameter atau parameter tidak ada nilai. |
10 | Kegagalan internal JavaScript Run-Time kode sumber JavaScript dilemparkan ketika memulai kesalahan proses Node, sangat langka, hanya ketika akan ada dalam pengembangan Node. |
12 | Debug Argumen tidak valid --debug Parameter set dan / atau --debug-brk, tetapi memilih port yang salah. |
> 128 | sinyal Keluar Jika Node menerima sinyal fatal, seperti SIGKILL atau SIGHUP, maka kode keluar adalah 128 ditambah kode sinyal. Ini adalah praktek Unix standar, kode tinggi pada sinyal keluar. |
atribut proses
Proses memberikan sifat yang berguna, kemudahan interaksi yang kita dapat lebih mengontrol sistem:
Nomor. | Properti & Deskripsi |
---|---|
1 | stdout output stream standar. |
2 | stderr stream standard error. |
3 | stdin masukan standar. |
4 | argv argv properti mengembalikan array berbagai parameter pada baris perintah eksekusi script ketika komposisi. anggota pertama selalu node, anggota kedua adalah nama file script, dan anggota yang tersisa adalah parameter dari file script. |
5 | execPath Mengembalikan path absolut dari eksekusi script binari Node saat ini. |
6 | execArgv Mengembalikan anggota array di bawah baris perintah skrip dijalankan antara parameter baris perintah file script executable Node. |
7 | env Mengembalikan sebuah objek, anggota variabel lingkungan shell saat ini |
8 | ExitCode kode keluar untuk proses, jika proses berbakat dengan () exit process.exit, tanpa menentukan kode keluar. |
9 | versi Versi Node, v0.10.18 tersebut. |
10 | versi Sebuah properti yang berisi versi simpul dan dependensi. |
11 | config Obyek yang berisi node saat ini digunakan untuk mengkompilasi file executable javascript opsi konfigurasi. Ini adalah skrip run ./configure sama dihasilkan "config.gypi" file. |
12 | pid Proses jumlah saat ini. |
13 | judul Nama proses, defaultnya adalah "node", Anda dapat menyesuaikan nilai. |
14 | lengkungan Arus arsitektur CPU: 'lengan', 'ia32' atau 'x64'. |
15 | peron Jalankan program di mana platform 'darwin', 'freebsd', 'linux', 'SunOS' atau 'win32' |
16 | mainModule require.main metode alternatif. sudut pandang yang berbeda, jika modul utama berubah pada saat runtime, require.main dapat terus kembali ke modul lama. Hal ini diyakini bahwa keduanya merujuk pada modul yang sama. |
contoh
Buat file main.js, kode sebagai berikut:
// 输出到终端 process.stdout.write("Hello World!" + "\n"); // 通过参数读取 process.argv.forEach(function(val, index, array) { console.log(index + ': ' + val); }); // 获取执行路局 console.log(process.execPath); // 平台信息 console.log(process.platform);
File main.js eksekutif, kode tersebut adalah sebagai berikut:
$ node main.js Hello World! 0: node 1: /web/www/node/main.js /usr/local/node/0.10.36/bin/node darwin
Metode Manual Referensi
Proses menyediakan banyak metode yang berguna untuk memudahkan kontrol yang lebih baik dari sistem interaktif kami:
Tidak. | Metode & deskripsi |
---|---|
1 | batalkan () Hal ini akan menyebabkan acara simpul batalkan pemicu. Maka akan keluar node dan menghasilkan file inti. |
2 | chdir (direktori) Mengubah direktori kerja saat ini proses, jika operasi gagal membuang. |
3 | cwd () Mengembalikan direktori kerja dari proses saat ini |
4 | exit ([code]) Akhir proses dengan kode tertentu. Jika dihilangkan, ia akan menggunakan kode 0. |
5 | getgid () Dapatkan identifikasi kelompok proses (lihat getgid (2)). Ketika kelompok diakuisisi id digital, bukan nama. Catatan: Fungsi ini dapat digunakan (misalnya, non-Windows dan Android) hanya pada POSIX platform. |
6 | setgid (id) Mengatur proses identifikasi kelompok (Lihat setgid (2)). Anda dapat menerima ID atau kelompok digital nama. Jika Anda menentukan nama grup akan memutuskan untuk memblokir menunggu ID digital. Catatan: Fungsi ini dapat digunakan (misalnya, non-Windows dan Android) hanya pada POSIX platform. |
7 | getuid () Dapatkan proses identifikasi pengguna (lihat getuid (2)). Ini adalah user id numerik, bukan nama pengguna. Catatan: Fungsi ini dapat digunakan (misalnya, non-Windows dan Android) hanya pada POSIX platform. |
8 | setuid (id) User ID proses pengaturan (lihat setuid (2)). Menerima ID atau tali digital nama. Jika Anda menentukan nama grup akan memutuskan untuk memblokir menunggu ID digital. Catatan: Fungsi ini dapat digunakan (misalnya, non-Windows dan Android) hanya pada POSIX platform. |
9 | getgroups () Kembali kelompok proses iD berbagai. sistem POSIX tidak menjamin bahwa ada, tapi ada node.js dijamin. Catatan: Fungsi ini dapat digunakan (misalnya, non-Windows dan Android) hanya pada POSIX platform. |
10 | setgroups (kelompok) Set ID grup proses. Hal ini berwenang untuk beroperasi, semua yang Anda butuhkan untuk memiliki hak akses root, atau memiliki kapasitas CAP_SETGID. Catatan: Fungsi ini dapat digunakan (misalnya, non-Windows dan Android) hanya pada POSIX platform. |
11 | initgroups (user, extra_group) Baca / etc / group, dan menginisialisasi daftar akses kelompok, semua anggota kelompok berada. Hal ini berwenang untuk beroperasi, semua yang Anda butuhkan untuk memiliki hak akses root, atau memiliki kapasitas CAP_SETGID. Catatan: Fungsi ini dapat digunakan (misalnya, non-Windows dan Android) hanya pada POSIX platform. |
12 | membunuh (pid [, sinyal]) Mengirimkan sinyal ke proses. Pid adalah proses id, dan sinyal adalah string yang menjelaskan sinyal yang ditransmisikan. nama sinyal adalah string seperti 'SIGINT' atau 'SIGHUP'. Jika dihilangkan, sinyal akan 'SIGTERM'. |
13 | memoryUsage () Ia mengembalikan sebuah objek yang menggambarkan proses yang digunakan oleh byte status memori Node. |
14 | nextTick (callback) Setelah akhir acara loop arus, memanggil kembali fungsi. |
15 | umask ([mask]) Mengatur atau membaca proses file masker. proses anak mewarisi topeng dari proses induk. Jika argumen masker ini berlaku, ia mengembalikan topeng tua. Jika tidak, ia mengembalikan topeng saat. |
16 | uptime () Mengembalikan jumlah detik Node sudah berjalan. |
17 | hrtime () resolusi waktu dari proses saat ini, dalam bentuk [detik, nanodetik] array. Hal ini sehubungan dengan peristiwa masa lalu. Nilai ini tidak ada hubungannya dengan tanggal, karena itu tidak mempengaruhi drift jam. Tujuan utama adalah melalui interval waktu yang tepat, untuk mengukur kinerja program. Sebelum Anda dapat melewati hasilnya ke process.hrtime saat ini (), itu akan kembali ke perbedaan waktu antara dua, untuk referensi dan pengukuran interval waktu. |
contoh
Buat file main.js, kode sebagai berikut:
// 输出当前目录 console.log('当前目录: ' + process.cwd()); // 输出当前版本 console.log('当前版本: ' + process.version); // 输出内存使用情况 console.log(process.memoryUsage());
File main.js eksekutif, kode tersebut adalah sebagai berikut:
$ node main.js 当前目录: /web/com/w3big/nodejs 当前版本: v0.10.36 { rss: 12541952, heapTotal: 4083456, heapUsed: 2157056 }