Node.js - #5 - Process - Rodrigo Branas
-
Upload
rodrigo-branas -
Category
Internet
-
view
5.571 -
download
2
Transcript of Node.js - #5 - Process - Rodrigo Branas
Exibindo as variáveis globais global.js
1. Object.keys(global).forEach(function (value) {2. console.log(value);3. });
Exibindo as propriedades global_process.js
1. Object.keys(process).forEach(function (value) {2. console.log(value);3. });
Obtendo argumentos da linha de comando process.js
1. process.argv.forEach(function (value) {2. console.log(value);3. });
Exibindo informações do processo process.js
1. var help = require('./help');2. var options = process.argv.slice(2);3. if (options.length < 1) {4. help.showOptions();5. return;6. }7. var option = options[0];8. switch(option) {9. case 'a': 10. console.log('pid: ' + process.pid);11. break;12. case 'b':13. console.log('title: ' + process.title);14. break;15. case 'c':16. console.log('arch: ' + process.arch);17. break;18. case 'd':19. console.log('platform: ' + process.platform);20. break;21. default:22. help.showOptions();23. }
Opções disponíveis help.js
1. var help = [2. 'a) pid', 3. 'b) title', 4. 'c) arch', 5. 'd) platform'6. ];
8. exports.showOptions = function () {9. help.forEach(function (value) {10. console.log(value);11. });12. };
São canais de comunicação, utilizados para realizar operações de entrada e saída, entre o programa e o ambiente
onde ele está sendo executado.
Utilizando stdout console.js
1. var konsole = {2. log: function (msg) {3. process.stdout.write(msg + '\n');4. }5. };6. konsole.log('A');
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');
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');
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.
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);
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. };
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. });
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. });
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. }
Tratando eventos (exit) process_with_keyboard.js
1. ...2. process.on('exit', function () {3. console.log('bye');4. });
Tratando eventos (uncaughtException) process_with_keyboard.js
1. ...2. process.on('uncaughtException', function () {3. console.log('error');4. });
Rodrigo BranasAgile Code: http://www.agilecode.com.br Twitter: @rodrigobranas SlideShare: http://www.slideshare.com/rodrigobranas YouTube: http://www.youtube.com/rodrigobranas LinkedIn: http://br.linkedin.com/in/rodrigobranas +Plus: https://plus.google.com/+RodrigoBranas GitHub: http://www.github.com/rodrigobranas