Solucionado (ver solução)
Solucionado
(ver solução)
8
respostas

Erro no transaction

Está dando um erro, mas eu dei uma olhada no meu código e parece estar direitinho.

NegociacaoDAO.js:9 Uncaught (in promise) DOMException: Failed to execute 'transaction' on 'IDBDatabase': One of the specified object stores was not found.
    at http://localhost:3000/app/dao/NegociacaoDAO.js:9:18
    at new Promise (<anonymous>)
    at NegociacaoDAO.adiciona (http://localhost:3000/app/dao/NegociacaoDAO.js:7:16)
    at <anonymous>:1:84

classe NegociacaoDAO:

class NegociacaoDAO {
    constructor(connection) {
        this._connection = connection;
        this._store = 'negociacoes';
    }
    adiciona(negociacao) {
        return new Promise((resolve, reject) => {
            let request = this._connection
                .transaction([this._store], 'readwrite')
                .objectStore(this._store)
                .add(negociacao);

            request.onsuccess = e => {
                resolve();
            }
            request.onerror = e => {
                console.log(e.target.result);
                reject('Não foi possível adicionar a negociação');
            }
        });
    }
}

Eu só coloquei o nome da classe diferente, não pode ter sido isso. Alguém pode me ajudar por favor?

8 respostas

Oi Lucas tudo bem?

Poderia, por gentileza, colocar a pasta do seu projeto no github? Assim posso analisar melhor o que está acontecendo.

Tá ok, Gist

Espero que consiga achar o erro.

solução!

A partir das últimas versões dos navegadores agora não é mais possível fazer requisições HTTP de outra origem (cross-origin) através de arquivos HTML rodando localmente sem estar em um servidor.

Criei esse repositório através dos seus arquivos e dos arquivos da aula. Coloquei os arquivos HTML junto com o servidor de arquivos https://github.com/neoandrevictor/topico-erro-no-transaction-86918 .

Clone o repositório e instale os arquivos com npm i --install , após instalar os arquivos rode o servidor com npm start . Ao acessar http://localhost:3000/ a página das negociações irá aparecer normalmente com todas as funções programadas. Os arquivos HTML estão na pasta public que possui acesso ao seu conteúdo diretamente do caminho estático.

Agradeço muito pelo seu feedback e pode nos procurar no fórum sempre que necessário.

Vamos colocar um para saber mais no curso pra tratar sobre a questão.

Ok, eu ponho a pasta que você está me passando dentro da pasta client e instalo, certo?

Essa pasta inteira agora é seu servidor web local. A sua pasta client é a pasta public (eu deveria ter chamado de client ao invés de public... mas ok). Pode jogar seus arquivos dentro dessa pasta. Porém não precisa jogar, os que estão lá dentro são os que você me passou do seu gist com uma correção da data que como falaram em outro tópico teu tava sendo feito errado.

Vlw cara, muito obrigado pela atenção e pela ajuda, podiam ter posto isso em alguma aula avisando sobre isso que você falou.

Disponha e bons estudos!

Já avisei o instrutor atual de Javascript sobre isso.

Ahh, cara isso tá assim nos arquivos das aulas de TypeScript também

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