freeCodeCamp/guide/portuguese/nodejs/process/index.md

89 lines
3.6 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

---
title: Process Object
localeTitle: Objeto do processo
---
## Objeto do processo
O objeto de `process` no Node.js é um objeto global que pode ser acessado dentro de qualquer módulo sem precisar dele. Existem muito poucos objetos ou propriedades globais fornecidos no Node.js e o `process` é um deles. É um componente essencial no ecossistema Node.js, pois fornece vários conjuntos de informações sobre o tempo de execução de um programa. Para explorar, usaremos uma de suas propriedades, chamada `process.versions` . Esta propriedade nos informa as informações sobre a versão do Node.js que instalamos. Tem que ser usado com o sinalizador `-p` .
```shell
$ 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' }
```
Outra propriedade que você pode verificar é a `process.release` que é igual ao comando `$ node --version` que usamos quando instalamos o Node.js, mas a saída desta vez será mais detalhada.
```shell
node -p "process.release"
# output
{ name: 'node',
lts: 'Carbon',
sourceUrl: 'https://nodejs.org/download/release/v8.11.2/node-v8.11.2.tar.gz',
headersUrl: 'https://nodejs.org/download/release/v8.11.2/node-v8.11.2-headers.tar.gz' }
```
Estes são alguns dos diferentes comandos que podemos usar em uma linha de comando para acessar informações, caso contrário, nenhum módulo pode fornecer. Esse objeto de `process` é uma instância da classe EventEmitter e contém seus próprios eventos pré-definidos, como `exit` que podem ser usados para saber quando um programa em Node.js concluiu sua execução. Execute o programa abaixo e você pode observar que o resultado surge com o código de status `0` . No Node.js este código de status significa que um programa foi executado com sucesso.
```js
process.on('exit', code => {
setTimeout(() => {
console.log('Will not get displayed');
}, 0);
console.log('Exited with status code:', code);
});
console.log('Execution Completed');
```
Saída do programa acima:
```shell
Execution Completed
Exited with status code: 0
```
`Process` também fornece várias propriedades para interagir. Alguns deles podem ser usados em um aplicativo Node para fornecer um gateway para comunicação entre o aplicativo Node e qualquer interface de linha de comando. Isso é muito útil se você estiver construindo um aplicativo ou utilitário de linha de comando usando o Node.js
* process.stdin: um fluxo legível
* process.stdout: um fluxo gravável
* process.stderr: um fluxo útil para reconhecer erros
Usando `argv` você sempre pode acessar argumentos que são passados em uma linha de comando. `argv` é uma matriz que possui o próprio Node como o primeiro elemento e o caminho absoluto do arquivo como o segundo elemento. A partir do terceiro elemento, pode ter tantos argumentos.
Experimente o programa abaixo para obter mais informações sobre como você pode usar essas várias propriedades e funções.
```js
process.stdout.write('Hello World!' + '\n');
process.argv.forEach(function(val, index, array) {
console.log(index + ': ' + val);
});
```
Se você executar o código acima com o seguinte comando, você obterá a saída e os dois primeiros elementos serão `argv` .
```shell
$ node test.js
# output
Hello World!
0: /usr/local/bin/node
1: /Users/amanhimself/Desktop/articles/nodejs-text-tuts/test.js
```