2017-10-26 3 views
0

내 뷰 + Laravel 응용 프로그램에서 색인화를 추가 해요 지정 찾을 수 없습니다, 여기에 내가 현재 사용하고 코드입니다 DB를 질의하여 indexedDB에있는 모든 건물을 전송하면 더 빨리 구문 분석 할 수 있습니다 (지도에 표시해야 함).Dexie.js 색인화 된이 객체

CanvasOverlay.vue?e208:68 Error: Failed to execute 'transaction' on 'IDBDatabase': One of the specified object stores was not found. 
    at Transaction.create (dexie.es.js?f8d5:2900) 
    at eval (dexie.es.js?f8d5:2222) 
    at eval (dexie.es.js?f8d5:1343) 
    at callListener (dexie.es.js?f8d5:1026) 
    at endMicroTickScope (dexie.es.js?f8d5:1113) 
    at IDBOpenDBRequest.eval (dexie.es.js?f8d5:1180) 

내가 설치 한 유일한 패키지는 Dexie입니다 :

npm install --save dexie 

그것이이 될 수 있습니다 좀 더 뭔가를 설치해야하거나 수행 문제는이 코드를 실행할 때 다음과 같은 오류를 얻을 수 있다는 것입니다 Webpack 문제?

+0

당신이 그것을 다른 사람에게 더 도움이 될 것입니다 귀하의 질문의 제목을 변경하시기 바랍니다 수 있습니까? 현재 로선 제목이 매우 넓습니다. 귀하의 질문은 특히 dexie의 문제와 특정 유형의 indexedDB 오류에 관한 것입니다. 이러한 것을 언급 해주십시오. – Josh

답변

0

데이터베이스를 삭제하고 코드를 다시 실행하십시오. 이 문제는 매우 일반적이며 these docs에 따라 버전 번호를 증가시키지 않고 동일한 버전 (1)이 업데이트 될 때 발생합니다.

또 다른 오류가 표시됩니다. forEach() 호출에서 함수 *를 사용할 수 없습니다. 대신 사용

for (let el of result.body) { 
     ... 
    } 

또는 더 나은 :

const itemsToAdd = result.body.map(el => ({ 
          id: el.id, 
          name: el.name, 
          address: el.address, 
          city: el.city, 
          nr_units: el.nr_units, 
          lat: el.lat, 
          long: el.long, 
          purchased: el.purchased, 
         })); 
return db.buildings.bulkAdd(itemsToAdd);