O documento discute processos no Node.js, incluindo como obter informações sobre o processo atual, lidar com streams de entrada e saída, e tratar eventos como exit e uncaughtException.
23. Eles podem ser tratados e
redirecionados de formas diferentes
24. Utilizando stdout e stderr
console.js
1. var konsole = {
2. log: function (msg) {
3. process.stdout.write(msg + 'n');
4. },
5. error: function (msg) {
6. process.stderr.write(msg + 'n');
7. }
8. };
9. konsole.log('A');
10. konsole.error('B');
25.
26. Podemos ainda verificar com quem
estamos interagindo, se é um TTY, ou
teletype, o terminal ou o teclado, ou PTY,
ou pseudo-teletype, que se refere a
algum tipo de software como telnet, ssh
ou xterm.
27. Utilizando stdout e stderr com isTTY
console.js
1. var konsole = {
2. log: function (msg) {
3. process.stdout.write(msg + 'n');
4. },
5. error: function (msg) {
6. process.stderr.write(msg + 'n');
7. }
8. };
9. konsole.log('A TTY:' + !!process.stdout.isTTY);
10. konsole.error('B TTY:' + !!process.stderr.isTTY);
28.
29. Utilizando stdin para ler o teclado
keyboard.js
1. exports.onReadable = function (callback) {
2. process.stdin.on('readable', function () {
3. var chunk = process.stdin.read();
4. if (chunk !== null) {
5. var data = chunk.toString().replace(/n/, '');
6. callback(data);
7. }
8. });
9. };
30. Exibindo informações do processo
process_with_keyboard.js
1. var keyboard = require('./keyboard');
2. var help = require('./help');
4. keyboard.onReadable(function (option) {
5. switch(option) {
6. case 'a':
7. console.log('pid: ' + process.pid);
8. break;
9. case 'b':
10. console.log('title: ' + process.title);
11. break;
12. case 'c':
13. console.log('arch: ' + process.arch);
14. break;
15. case 'd':
16. console.log('platform: ' + process.platform);
17. break;
18. default:
19. help.showOptions();
20. }
21. });
31.
32. Abortando o processo
process_with_keyboard.js
1. var keyboard = require('./keyboard');
2. var help = require('./help');
4. keyboard.onReadable(function (option) {
5. switch(option) {
6. case 'a':
7. console.log('pid: ' + process.pid);
8. break;
9. case 'b':
10. console.log('title: ' + process.title);
11. break;
12. case 'c':
13. console.log('arch: ' + process.arch);
14. break;
15. case 'd':
16. console.log('platform: ' + process.platform);
17. break;
18. case 'q':
19. process.exit();
20. default:
21. help.showOptions();
22. }
23. });
33.
34. Exibindo outras informações do processo
process_with_keyboard.js
1. ...
2. switch(option) {
3. case 'a':
4. console.log('pid: ' + process.pid);
5. break;
6. case 'b':
7. console.log('title: ' + process.title);
8. break;
9. case 'c':
10. console.log('arch: ' + process.arch);
11. break;
12. case 'd':
13. console.log('platform: ' + process.platform);
14. break;
15. case 'e':
16. console.dir(process.env);
17. break;
18. case 'u':
19. console.log('uptime: ' + process.uptime());
20. break;
21. case 'v':
22. console.dir(process.versions);
23. break;
24. case 'q':
25. process.exit();
26. default:
27. help.showOptions();
28. }