Nodemon em Node.js
Durante o desenvolvimento, pode ser necessário fazer alterações em um projeto que já está em execução. Suponha que temos um programa representado pelo arquivo app.js, onde definimos o seguinte código:
const http = require("http");
let message = "Hello World!";
http
.createServer(function (request, response) {
console.log(message);
response.end(message);
})
.listen(3000, "127.0.0.1", () => {
console.log("Servidor iniciado em http://localhost:3000");
});Vamos iniciar o servidor usando o comando node app.js. Ao acessar o endereço http://localhost:3000/, o navegador do usuário exibirá a mensagem "Hello World!". Ao mesmo tempo, essa mensagem será exibida no console do terminal:
c:\app> node app.js Servidor iniciado em http://localhost:3000 Hello World! Hello World!
Agora, suponha que precisamos alterar a mensagem exibida no navegador. Para isso, precisamos parar o servidor, alterar o código e iniciar o servidor novamente. Isso pode ser um processo demorado e repetitivo. Para facilitar esse processo, podemos usar o nodemon.
O nodemon é uma ferramenta que monitora alterações em arquivos no diretório do projeto e reinicia automaticamente o servidor sempre que um arquivo é alterado. Para usá-lo, criaremos o seguinte arquivo package.json na pasta do projeto:
{
"name": "helloapp",
"version": "1.0.0",
"scripts": {
"start": "nodemon app.js"
},
"dependencies": {
"nodemon": "^3.0.1"
}
}Na seção scripts, definimos o comando start, que na executará o comando nodemon app.js e iniciará o arquivo através do nodemon.
Na seção dependencies, especificamos o pacote nodemon para instalação.
Primeiro, no console, navegamos até a pasta do projeto e instalamos o nodemon com o comando npm install:
c:\app> npm install added 34 packages, and audited 35 packages in 3s 3 packages are looking for funding run `npm fund` for details found 0 vulnerabilities
Em seguida, iniciamos a aplicação com o comando npm start, que definimos anteriormente no package.json:
c:\app> npm start > helloapp@1.0.0 start > nodemon app.js [nodemon] 3.0.1 [nodemon] to restart at any time, enter `rs` [nodemon] watching path(s): *.* [nodemon] watching extensions: js, mjs, cjs, json [nodemon] starting `node app.js` Servidor começou a ouvir requisições no endereço http://localhost:3000
Agora, nossa aplicação está em execução e podemos acessá-la no navegador. Se alterarmos o código do servidor após seu início, por exemplo, mudando a variável message de "Hello World!" para "Goodbye World!", o servidor será reiniciado automaticamente:
c:\app> npm start > helloapp@1.0.0 start > nodemon app.js [nodemon] 3.0.1 [nodemon] to restart at any time, enter `rs` [nodemon] watching path(s): *.* [nodemon] watching extensions: js, mjs, cjs, json [nodemon] starting `node app.js` Servidor começou a ouvir requisições no endereço http://localhost:3000 Hello World! Hello World! [nodemon] restarting due to changes... [nodemon] starting `node app.js` Servidor começou a ouvir requisições no endereço http://localhost:3000 Goodbye World! Goodbye World!
Assim, com o nodemon, podemos desenvolver e testar nossa aplicação de forma mais eficiente, sem a necessidade de reiniciar manualmente o servidor após cada alteração.