A process
Node.js objektum egy globális objektum, amely bármely modul belsejében elérhető, anélkül, hogy igényelné. Nagyon kevés globális objektum vagy tulajdonság található a Node.js fájlban, és process
ezek egyike. Ez alapvető eleme a Node.js ökoszisztémának, mivel különféle információkészleteket nyújt a program futásidejéről.
A felfedezéshez az egyik tulajdonságát fogjuk használni process.versions
. Ez a tulajdonság megadja nekünk a telepített Node.js verzióval kapcsolatos információkat. Zászlóval kell használni -p
.
$ node -p "process.versions" # output { http_parser: '2.8.0', node: '8.11.2', v8: '6.2.414.54', uv: '1.19.1', zlib: '1.2.11', ares: '1.10.1-DEV', modules: '57', nghttp2: '1.29.0', napi: '3', openssl: '1.0.2o', icu: '60.1', unicode: '10.0', cldr: '32.0', tz: '2017c' }
Egy másik tulajdonság, amelyet ellenőrizhet process.release
, ugyanaz, mint a $ node --version
Node.js telepítésekor használt parancs . De a kimenet ezúttal részletesebb lesz.
node -p "process.release" # output { name: 'node', lts: 'Carbon', sourceUrl: '//nodejs.org/download/release/v8.11.2/node-v8.11.2.tar.gz', headersUrl: '//nodejs.org/download/release/v8.11.2/node-v8.11.2-headers.tar.gz' }
Ezek a különböző parancsok, amelyeket a parancssorban használhatunk olyan információk elérésére, amelyeket egyébként egyetlen modul sem tud biztosítani.
Ez az process
objektum az EventEmitter osztály példánya. Tartalmaz saját, előre definiált eseményeket, exit
amelyek segítségével megtudhatja, hogy a Node.js programja mikor hajtotta végre a végrehajtást.
Futtassa az alábbi programot, és megfigyelheti, hogy az eredmény állapotkóddal áll elő 0
. A Node.js-ben ez az állapotkód azt jelenti, hogy egy program sikeresen futott.
process.on('exit', code => { setTimeout(() => { console.log('Will not get displayed'); }, 0); console.log('Exited with status code:', code); }); console.log('Execution Completed');
A fenti program kimenete:
Execution Completed Exited with status code: 0
Process
különféle tulajdonságokkal is rendelkezik, amelyekkel kölcsönhatásba léphet. Néhányuk felhasználható egy Node alkalmazásban átjáró biztosítására a Node alkalmazás és bármely parancssori interfész közötti kommunikációhoz. Ez nagyon hasznos, ha parancssori alkalmazást vagy segédprogramot épít a Node.js használatával
- process.stdin: olvasható adatfolyam
- process.stdout: írható adatfolyam
- process.stderr: a hibák felismerésére szolgáló lefordítható adatfolyam
A használatával argv
mindig elérheti a parancssorban átadott argumentumokat. argv
egy tömb, amelynek első eleme maga a Node, a második elemként pedig a fájl abszolút elérési útja. A harmadik elemtől kezdve annyi argumentum lehet, amennyit csak akar.
Próbálja ki az alábbi programot, hogy minél több betekintést nyerjen e különféle tulajdonságok és funkciók használatába.
process.stdout.write('Hello World!' + '\n'); process.argv.forEach(function(val, index, array) { console.log(index + ': ' + val); });
Ha a fenti kódot a következő paranccsal futtatja, akkor megkapja a kimenetet, és az első két elem argv
kinyomtatásra kerül.
$ node test.js # output Hello World! 0: /usr/local/bin/node 1: /Users/amanhimself/Desktop/articles/nodejs-text-tuts/test.js