3
respostas

Json Server

Na aula consumindo serviço de autenticação não foi ensinado como o arquivo json de login deve estar configurado. Estou realizando o acompanhamento da aula e ficou faltando este passo. Estou recebendo o erro de TypeError: Cannot read property 'id' of undefined.

Oque posso fazer para resolver este problema ?

3 respostas

Olá, Marco! Tudo bem?

Desculpe a demora!

Não entendi direito o problema, seria com a API? O professor não utiliza o json-server para simular o back-end, tendo em vista que o back-end está pronto na pasta api. Essa pasta foi disponibilizada junto do projeto do curso.

Para rodar ela, primeiro você precisa instalar as dependências, então entre na pasta api via terminal e rode npm install. Depois você pode executar a API com npm start.

Se esse processo já tinha sido feito, mande aqui um print do erro completo, por favor! Assim podemos ver melhor.

Espero que ajude!

Bom dia

Segue o erro :

PS C:\Users\Gonçalves\Desktop\Estudo\Labs\ApiCursoAlura\angular_formularios-main\angular_formularios-main\api> npm i

npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! sqlite3@4.2.0 install: node-pre-gyp install --fallback-to-build npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the sqlite3@4.2.0 install script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in: npm ERR! C:\Users\Gonçalves\AppData\Roaming\npm-cache_logs\2021-08-13T11_04_31_287Z-debug.log

Marco, tente o seguinte:

  • Acesse a pasta da API e delete a pasta node_modules (se houver);
  • Vá no arquivo package.json da API e apague a linha referente ao sqlite (por exemplo: "sqlite3": "^4.1.0",);
  • Rode novamente npm i, agora tudo deve funcionar normalmente;
  • Após o processo, rode npm i sqlite3, e assim você terá instalada a última versão da dependência.

Se isso não funcionar, você pode tentar esta solução:

  • Rode um terminal em modo de administrador (Powershell ou cmd);
  • No terminal, execute: npm install --global --production windows-build-tools;
  • Depois rode: npm install -g node-gyp;
  • Finalmente, volte na pasta da API e rode npm i sqlite3.

A primeira solução é mais simples, apenas troca uma versão do SQLite por outra. Enquanto a segunda versão lida com uma biblioteca especial que irá instalar várias dependências necessárias (como Python) para você trabalhar com algumas funcionalidades do Node.

Qualquer coisa, dá um toque!