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.