5
respostas

npm install - erro sqlite (SOLUÇÃO)

Olá!

Erro sqlite:

...
node-pre-gyp WARN Tried to download(403): https://mapbox-node-binary.s3.amazonaws.com/sqlite3/v4.1.1/node-v83-win32-x64.tar.gz
node-pre-gyp WARN Pre-built binaries not found for sqlite3@4.1.1 and node@14.8.0 (node-v83 ABI, unknown) (falling back to source compile with node-gyp)
...

Venho aqui disponibilizar o passo-a-passo para resolver o erro do sqlite ao tentar instalar o server-api (pasta server-petshop) na Aula 02.

Se tiver já instalado ou alterado alguma coisa, delete a pasta server-petshop, e a baixe novamente no link disponibilizado no curso.

Próximos passos:

  1. Delete o package-lock.json

  2. No terminal, dentro da pasta server-petshop, instale o sqlite3:

    ...\projeto_inicial> cd server-petshop
    ...\projeto_inicial\server-petshop> npm install sqlite3 --save
  3. Delete a linha "sqlite": "^3.0.3" em package.json

  4. Instale o sqlite v4+:

    ...\server-petshop> npm install sqlite --save

  5. Instale o restante dos pacotes:

    ...\server-petshop> npm install

  6. Em ...\server-petshop\infraestrutura\database\queries.js, altere as seguintes linhas:

     -const sqlite = require("sqlite");
     +const sqlite3 = require('sqlite3');
     +const { open } = require('sqlite');
    
      const executaQuery = async (res, query) => {
     -  const conexao = await sqlite.open("./database.sqlite");
     +  const conexao = await open({
     +    filename: './database.sqlite',
     +    driver: sqlite3.Database,
     +  });
        const resBD = await conexao.all(query);
        res.json(resBD);
     -  await sqlite.close(conexao);
     +  await conexao.close();
      };
    
      module.exports = executaQuery;
  7. Em ...\server-petshop\infraestrutura\database\tabelas.js, altere as seguintes linhas:

     -const SQL = require("sql-template-strings");
     -const sqlite = require("sqlite");
     +const SQL = require('sql-template-strings');
     +const sqlite3 = require('sqlite3');
     +const { open } = require('sqlite');
      class Tabelas {
        async init() {
     -    this.conexao = await sqlite.open("./database.sqlite");
     +    this.conexao = await open({
     +      filename: './database.sqlite',
     +      driver: sqlite3.Database,
     +    });
    
          this.criaClientes();
          this.criaPets();
          this.criaServicos();
          this.criaAtendimentos();
     -    await sqlite.close(this.conexao);
     +    await this.conexao.close();
        }
    
        criaClientes() {
     ...
5 respostas

Fala ai Luiz, tudo bem? Essa dúvida já tenho até colinha pronta aqui kkkk

Obrigado por disponibilizar sua solução com a gente.

Abraços e bons estudos.

Kkk Quis deixar uma solução mais organizada aqui no forum rs

Luis, boa noite!

Obrigado pela ajuda!

Agora está tudo funcionando.

Valeu!

Obrigado pela ajuda, Luiz.

Abraço.

Valeu Luiz

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software