Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

165
Visualizações
Obtenga nuevos datos de la base de datos sqlite al recargar

Logré obtener datos del sensor en una base de datos sqlite3. Cada 2 minutos aparecen nuevos valores en la base de datos. Ahora quiero mostrarlo con chart.js y, por lo tanto, hacer uso de sql.js. El código que uso es:

 const config_sqljs = { locateFile: filename => ( 'https://cdnjs.cloudflare.com/ajax/libs/sql.js/1.5.0/sql-wasm.wasm' ) } const sqlPromise = initSqlJs(config_sqljs) const dataPromise = fetch(( '/sensors.db' )) .then(res => res.arrayBuffer()) Promise.all([sqlPromise, dataPromise]) .then(([SQL, buf]) => { const db = new SQL.Database(new Uint8Array(buf)) //const res = db.exec('select time_,temp,humi from sensors where topic=\"/x/sensors\"') const res = db.exec('select time_,temp,humi from sensors where topic =\"/y/sensors\" and (date=\"29.11.2021\" or date=\"30.11.2021\" or date=\"01.12.2021\");') const values = res[0].values; let labelx = values.map((arr) => arr[0]); let y = values.map((arr) => arr[1]); let y2 = values.map((arr) => arr[2]); })

Funciona bien al principio, pero luego me di cuenta de que los valores en los arreglos labelx, y, y y2 no son los más nuevos, les falta alrededor de medio día. Los nuevos valores siempre aparecen en la base de datos. Creo que tiene algo que ver con Promise.all() y .then, pero desafortunadamente no sé mucho sobre js. El código se ejecuta cada vez que el sitio se carga o recarga, incluso si uso Strg+F5 para forzar una recarga completa, sin almacenar en caché, permanece igual. ¿Me puedes ayudar? ¡Gracias!

=== EDITAR ===

Adapté tu sugerencia:

 const dataPromise = fetch(( '/db.db', { method: "GET", "cache-control": "no-store"} )) .then(res => res.arrayBuffer())´

Lamentablemente me sale el error:

Error no capturado (en promesa): el archivo no es una base de datos

la línea correspondiente:

const res = db.exec('seleccione x de db;')

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Fetch podría estar almacenando en caché las respuestas. Probar:

 fetch('/sensors.db', { method: "GET", "cache-control": "no-store" })
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda