Você está aqui: Node.js ::: Dicas & Truques ::: Arquivos e Diretórios |
|
Como ler o conteúdo de arquivos usando as funções readFile() e readFileSync() do módulo File System (fs) do Node.jsQuantidade de visualizações: 4311 vezes |
|
O Node.js facilita muito o nosso trabalho quando o assunto é ler o conteúdo de um arquivo, seja um arquivo .txt, .html, .css, etc, até mesmo arquivos binários. O módulo File System, ou fs, nos fornece duas funções, a saber: readFile() e readFileSync(). A primeira nos permite ler o conteúdo do arquivo de forma assíncrona, enquanto a segunda permite a leitura de forma síncrona, ou seja, com bloqueio. Vamos começar com a função readFileSync(), por ser mais fácil de entender. Veja o trecho de código a seguir: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- // precisamos importar o módulo File System var fs = require('fs'); // nome e caminho do arquivo a ser lido var arquivo = 'C:\\estudos_nodejs\\texto.txt'; // guardamos o conteúdo do arquivo var conteudo = fs.readFileSync(arquivo); // e o exibimos em seguida console.log('Conteúdo do arquivo:\n\n' + conteudo); Ao executar este código nós teremos o seguinte resultado: c:\estudos_nodejs>node ler_arquivo.js Conteúdo do arquivo: Esta é a primeira linha do arquivo. Esta é a segunda linha do arquivo. E esta é a terceira linha do arquivo. É importante observar que uma chamada à função fs.readFileSync() bloqueia as demais instruções, ou seja, o código da aplicação fica congelado até que o conteúdo do arquivo seja carregado por completo na variável conteudo. Em aplicações console essa pode ser uma boa idéia, principalmente se as demais partes da aplicações dependerem do resultado dessa leitura. Note que uma chamada ao método fs.readFileSync() pode atirar uma exceção (erro) do tipo: Error: ENOENT: no such file or directory, open caso o arquivo não puder ser encontrado. Na dúvida é bom usar um bloco try...catch para evitar que sua aplicação morra antes da hora. A função readFile(), por sua vez, é assíncrona. Isso que dizer que, enquanto ela se encarrega de fazer a leitura do arquivo, as demais partes do código da aplicação continuarão sendo executadas. Por isso, devemos fornecer a ela uma função de callback. Veja o exemplo a seguir: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- // precisamos importar o módulo File System var fs = require('fs'); // nome e caminho do arquivo a ser lido var arquivo = 'C:\\estudos_nodejs\\texto.txt'; // lemos o conteúdo do arquivo e o guardamos // na variável conteudo (de forma assíncrona) fs.readFile(arquivo, (erro, conteudo) => { if(erro){ throw "Ops, aconteceu um erro: " + erro; } else{ console.log("Conteúdo do arquivo\n\n:" + conteudo); } }); Ao executarmos este código nós teremos o mesmo resultado do código anterior, com a diferença de que a leitura agora ocorrerá de forma assícrona. Tenha cuidado com isso. Código assíncrono acessando variáveis externas pode ser um perigo. |
|
Link para compartilhar na Internet ou com seus amigos: | |
Node.js ::: Express.js ::: Passos Iniciais |
Node.js Express.js - Como escrever sua primeira aplicação Express.jsQuantidade de visualizações: 1933 vezes |
Se você chegou até esta página vindo(a) de um sistema de busca tal como o Google, saiba que o Express.js é um framework web baseado no núcleo do Node.js, ou seja, antes de experimentar o exemplo abaixo, você deve ter uma instalação funcional do Node.js na sua máquina. Além disso, o módulo express deve estar instalado também, e 100% operacional. No entanto, se sua instalação do Node.js ainda não tem o express, basta entrar no diretório que você instalou o Node.js e disparar o comando a seguir: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- npm install express Verifique se a instalação foi feita com sucesso e vamos continuar. Este exemplo é bem simples e requer apenas um arquivo. Para tanto, abra o seu editor de código favorito e digite a listagem abaixo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- // vamos importar o módulo express var express = require('express'); // o servidor vai ouvir na porta 8081 var porta = 8081; var app = express(); // o asterisco (*) quer dizer que todas as requisições vão cair aqui app.get('*', function(request, response){ response.end('Tamo juntos!'); }); app.listen(porta, function(){ console.log('O servidor está ouvindo em http://localhost:%s', porta); }); Salve o arquivo como servidor.js e execute o Node.js. Em seguida abra o seu navegador web no endereço http://localhost:8081 e veja o resultado. Agora não deixe de ver nossas outras dicas de Node.js e aprender cada vez mais. |
Node.js ::: Dicas & Truques ::: Arquivos e Diretórios |
Como obter o diretório de instalação do Node.js - O diretório de trabalho do Node.jsQuantidade de visualizações: 1971 vezes |
Em algumas situações nós gostaríamos de obter o diretório de instalação, ou diretório de trabalho do Node.js. Isso pode ser feito por meio da variável __dirname ou da função cwd() do objeto process. Tanto a variável quanto a função process.cwd() fazem parte do core do Node.js e não precisam ser importados. Veja abaixo um exemplo de um aplicação funcional que mostra o nome do diretório de trabalho: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- // importamos o módulo HTTP var http = require("http"); http.createServer(function(request, response){ // Aqui nós enviamos o cabeçalho HTTP, com a resposta // 200 (OK) e o content type text/plain response.writeHead(200, {'Content-Type': 'text/plain'}); // Vamos obter e mostrar o diretório de trabalho do Node.js var diretorio = __dirname; // poderíamos também usar // var diretorio = process.cwd(); response.write('O diretório de trabalho é: ' + diretorio + '\n'); // fechamos a resposta HTTP response.end(); }).listen(8081); // o HTTP server vai ouvir na posta 8081 // Que tal uma mensagem no console? console.log('O servidor está ouvindo em http://127.0.0.1:8081/'); Depois de executar o servidor, abra seu navegador no endereço http://127.0.0.1:8081 e você terá o seguinte resultado: O diretório de trabalho é: c:\estudos_nodejs |
Node.js ::: Node.js + MongoDB ::: Passos Iniciais |
Node.js MongoDB - Como instalar o driver do MongoDB no Node.js e efetuar uma conexão Node.js + MongoDBQuantidade de visualizações: 1315 vezes |
Assumindo que você já conhece o banco de dados MongoDB, já fez sua instalação e já está um pouco familiarizado com suas características, nesta dica mostrarei como podemos efetuar uma conexão Node.js + MongoDB. Este é o passo inicial para desenvolver aplicações MEAN (Mongo, Express, Angular, Node) ou MERN (Mongo, Express, React, Node). Note que, nessa dica, usarei apenas o MongoClient para efetuar a conexão com o banco de dados MongoDB. Em outras dicas eu abordo o Mongoose. Então vamos iniciar. A primeira coisa que temos que fazer é instalar o driver MongoDB. Assim, com o Node.js devidamente instalado e funcionando, e com o banco MongoDB em perfeito funcionamento também, abra uma janela de terminal e digite o comando: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- npm install mongodb Após alguns minutos, a instalação será concluída e teremos o seguinte resultado: + mongodb@3.6.4 added 17 packages from 9 contributors and audited 20 packages in 9.358s 1 package is looking for funding run `npm fund` for details found 0 vulnerabilities Agora já podemos escrever o código que efetua a conexão Node.js com o MongoDB. Abra o seu editor de códigos favorito e digite a listagem abaixo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- // vamos obter uma referência ao MongoClient var MongoClient = require('mongodb').MongoClient; // vamos nos conectar à base de dados escola var url = 'mongodb://localhost:27017/escola'; // Vamos nos conectar ao servidor e base de dados. Atenção: Em caso de erro, a // função pode demorar a retornar, pois o Node.js pode pensar que é lentidão // na rede MongoClient.connect(url, {useUnifiedTopology: true}, function(err, db) { if(err){ console.log("Não foi possível efetuar a conexão. Erro: " + err); } else{ console.log("Conexão efetuada com sucesso."); } // finalmente vamos fechar a conexao if(db){ db.close(); } }); Salve este código como conexao.js e execute-o no Node.js (com o MongoDB rodando, é claro) com o seguinte comando: c:\estudos_nodejs>node conexao.js Se tudo correr bem você verá a mensagem: Conexão efetuada com sucesso. Veja que, nesse código, eu efetuei uma conexão com a base de dados escola. Se a porta e o servidor estiverem corretos (talvez você tenha que informar um usuário e senha também), a conexão será efetuada com sucesso mesmo que a base de dados não exista. Quando informamos uma base de dados inexistente, o MongoDB entende que queremos criá-la, mas ele só a cria de fato, quando solicitamos a criação de uma nova coleção. Em mais dicas dessa seção você aprenderá como criar coleções no MongoDB a partir de seus códigos Node.js. Até lá e bons estudos. |
Vamos testar seus conhecimentos em |
Vigas a flexão simples: seções retangulares Além da preocupação com segurança e economia, o projetista estrutural precisa também se preocupar com a execução da obra. Vigas super armadas dificultam a concretagem, podendo resultar nos vazios do concreto, popularmente chamadas de bicheiras. Tendo isso em mente, qual é a largura mínima para uma viga com 3 barras de 16mm de armadura principal, dispostas na mesma camada, e estribo de 6,3mm? Considere que não há parede apoiada sobre a viga, a agressividade ambiental é classe III e o concreto tem brita 1. A) 12cm. B) 14cm. C) 19cm. D) 15cm. E) 20cm. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Python |
Qual das formas abaixo é usada para criar um SET em Python? A) valores = set{3, 6, 1, 7, 6, 3} B) valores = (3, 6, 1, 7, 6, 3) C) valores = [3, 6, 1, 7, 6, 3] D) valores = {3, 6, 1, 7, 6, 3} E) valores = set(3, 6, 1, 7, 6, 3) Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Fenômeno de Transportes e Hidráulica |
Raio Hidráulico Ano: 2019 Banca: Instituto Consulplan Órgão: Prefeitura de Pitangueiras - SP Prova: Instituto Consulplan - 2019 - Prefeitura de Pitangueiras - SP - Engenheiro Civil O Raio Hidráulico é a relação entre a área molhada e o perímetro molhado, sendo parâmetro importante no dimensionamento de canais, tubos, dutos e outros componentes das obras hidráulicas. Sua unidade no SI é o metro (m2/m = m). Na figura é ilustrado um canal trapezoidal aberto (figura A), e à sua direita (figura B) as dimensões de sua seção transversal em um determinado trecho do seu percurso. Para a seção transversal do canal, assinale, a seguir, o valor do raio hidráulico. A) 0,26 m. B) 0,47 m. C) 1,26 m. D) 2,12 m. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Fenômeno de Transportes e Hidráulica |
Fórmula de Manning Galerias subterrâneas de águas pluviais escoam todo o volume de chuvas que os bueiros conseguem drenar. São importantes para a drenagem de grandes centro. Isso porque, servem para evitar alagamentos e outros prejuízos sociais, ambientais e econômicos. Para uma galeria de águas pluviais construída em concreto, com n igual 0,013, diâmetro de 85cm, declividade de fundo (S0) de 30cm/km, transportando 550l/s em regime permanente e uniforme, determine: Qual altura da lâmina d'água pluvial que a galeria apresentará nessas condições? A) 80cm. B) 53cm. C) 60cm. D) 45cm. E) 69cm. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em |
Dimensionamento de pilares de canto A determinação do momento atuante em um pilar de canto é um dos pontos principais no dimensionamento de armaduras. Analise o pilar do exemplo a seguir:​​​​​​​ Qual o valor do momento total na direção mais crítica? A) Md, total,x = 3.500KN.cm. B) Md, total,x = 7.352,84KN.cm. C) Md, total,x = 5.012KN.cm. D) Md, total,x = 1.569KN.cm. E) Md, total,x = 2.569KN.cm. Verificar Resposta Estudar Cards Todas as Questões |
Veja mais Dicas e truques de Node.js |
Dicas e truques de outras linguagens |
VB.NET - Como usar o laço While em VB.NET VB.NET - Como inverter o conteúdo de uma string em VB.NET usando os métodos ToCharArray() e Reverse() |
Códigos Fonte |
Software de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais |
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais |
Linguagens Mais Populares |
1º lugar: Java |