Manipulando arquivos com NodeJS

Estes exemplos foram feitos a partir dos exercícios disponíveis no nodeschool, pelo workshopper learnyounode.

Lendo um arquivo de forma síncrona

A ideia aqui era fazer um programa em node que pudesse contar o número de linhas em um arquivo cujo caminho foi fornecido via parâmetro.

// countLines.js
var fs = require('fs');
var filename = process.argv[2]; // parametro
var buffer = fs.readFileSync(filename);
var str = buffer.toString();
console.log(str.split('\n').length - 1);

Lendo arquivo de forma assíncrona

// countLinesAsync.js
var fs = require('fs');
var filename = process.argv[2];
fs.readFile(filename, function(err, data) {
    var str = data.toString();
    console.log(str.split('\n').length - 1);
});

Listando arquivos de um diretório

O programinha abaixo funciona mais ou menos como o comando ls do linux. O primeiro parâmetro é o diretório que se quer listar arquivos e o segundo parâmetro é a extensão dos arquivos que serão listados.

// ls.js
var fs = require('js');
var path = require('path');
var dirPath = process.argv[2];
var ext = '.' + process.argv[3];

fs.readdir(dirPath, function (err, list) {
    if (err) {
        return;
    }
    var files = list.filter(function(f) {
        return path.extname(f) === ext;
    });
    console.log(files.join('\n'));
});

Referências

  • http://nodeschool.io/#workshopper-list
  • https://github.com/rvagg/learnyounode

Hello World com NodeJS

NodeJS é uma plataforma para programação de Javascript no lado do servidor. Foi construído sobre o interpretador Javascript que é usado no Chrome, o V8.

Instalando no Archlinux

sudo pacman -S nodejs

Depois de instalado é possível acessar um shell interativo através do comando node.

Um ‘Hello World

# hello-world.js
console.log('HELLO WORLD');

Para executar o arquivo acima, basta digitar no console:

$ node hello-world.js 
HELLO WORLD

Algo mais elaborado que isso poderia ser uma mensagem vinda por parâmetro, quando o comando é invocado.

# hello-world-2.js
console.log(process.argv[2]);

A execução do arquivo ficaria da seguinte forma:

$ node hello-world-2.js 'Hello World'
Hello World

Referências

  • http://nodeschool.io/
  • https://github.com/rvagg/learnyounode