Saudações, quando rodo a aplicação com npm start
o middleware de autorizacao não funciona, quando rodo com npm run dev
o middleare funciona, porque isso?
Saudações, quando rodo a aplicação com npm start
o middleware de autorizacao não funciona, quando rodo com npm run dev
o middleare funciona, porque isso?
Boa tarde Felipe, tudo certo?
Vou explicar como funcionam os scripts do npm
e como você pode conferir o que está acontecendo:
Os projetos que utilizam o npm
como gerenciador de pacote precisam ter um arquivo chamado package.json
. Nesse arquivo ficam informações do projeto, como o nome, autor, versão, descrição e scripts que podem ser executados em diversas etapas do projeto. Existem diversos outros campos que são explicados na documentação do npm
.
Aqui está o conteúdo do package.json
que foi utilizado no projeto da aula:
{
"name": "blog-do-codigo",
"version": "1.0.0",
"description": "Um blog simples em Node.js",
"main": "server.js",
"scripts": {
"dev": "nodemon server.js",
"lint": "eslint ./src/** app.js database.js rotas.js server.js"
},
"license": "ISC",
"dependencies": {
"accesscontrol": "^2.2.1",
"bcrypt": "^3.0.8",
"body-parser": "^1.19.0",
"dotenv": "^8.2.0",
"esdoc": "^1.1.0",
"esdoc-standard-plugin": "^1.0.0",
"express": "^4.17.1",
"jsonwebtoken": "^8.5.1",
"moment": "^2.26.0",
"nodemailer": "^6.4.8",
"passport": "^0.4.1",
"passport-http-bearer": "^1.0.1",
"passport-local": "^1.0.0",
"redis": "^3.0.2",
"sqlite3": "^4.2.0"
},
"devDependencies": {
"nodemon": "^2.0.2",
"eslint": "^7.10.0",
"eslint-config-standard": "^14.1.1",
"eslint-plugin-import": "^2.22.1",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-promise": "^4.2.1",
"eslint-plugin-standard": "^4.0.1"
}
}
Eu vou recortar a parte que nos interessa, que é o campo scripts
:
"scripts": {
"dev": "nodemon server.js",
"lint": "eslint ./src/** app.js database.js rotas.js server.js"
},
Do lado esquerdo fica qual é o atalho que deve ser chamado após npm run
e do lado direito é declarado o que vai ser chamado quando for chamado. Ou seja, ao chamar npm run dev
o que vai acontecer de verdade no seu terminal é a execução do comando nodemon server.js
. Essa ferramenta nos permite uniformizar os comandos para que a forma de realizar algumas ações seja similar independente da arquitetura do projeto em específico.
E o comportamento padrão do comando npm start
é executar node server.js
na pasta raiz do projeto caso ele não seja explicitado no package.json
. Creio que a chamada npm start
que não tenha um script explicitado no package.json
tenha algum outro efeito colateral que está afetando o seu middleware. Sugiro fazer a alteração seguinte no seu package.json
e tentar novamente:
"scripts": {
"start": "node server.js",
"dev": "nodemon server.js",
"lint": "eslint ./src/** app.js database.js rotas.js server.js"
},
Também sugiro a leitura da documentação sobre rodar scripts no npm. Qualquer coisa estarei no aguardo.
Espero ter ajudado e bons estudos!