Latest web development tutorials

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.js
Hello, 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 (): mencetak ke output stream standar dan diakhiri dengan karakter baris baru.

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 keluar adalah sebagai berikut:

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 }