0

オフライン アプリケーションで Dexie を使用しています。Indexeddb データベースに新しいデータを挿入しようとすると、次のエラーが発生します。TypeError: Cannot set property 'onerror' of undefined(…)

これは、エラーをスローしているように見えるコードです。

InsertApiLogs: function (Data) {
            return DB.transaction('rw', DB.ApiLogs, () => {
                DB.ApiLogs.clear().then(
                    DB.ApiLogs.bulkPut(Data)
                );
            }).catch( function (E) {
                console.log(E);
                return false;
            });
        },

これは、データベースを作成する場所です。

var DB = new Dexie('local', {autoOpen: true});

DB.version(1).stores({
    Event: "EventId, Name, StartDate, EndDate, Description, OriginalUserId, DateCreated, IsArchived, IsRecurring, CreatedInGCal",
    Pipeline: "PipelineId, Name, Image, DateCreated, DateArchived, Statuses",
    ApiLogs: "APILogId, UserCode, FunctionName, Success, Error, Parameters, ReturnVal, Date",
    MySelf: "Type, Data"
});

途中でテーブルを追加していて、多くのバージョンのデータベースを作成したくないので、DB をクリーンアップするために次のことを行いました。

var DB = new Dexie('local', {autoOpen: true});

DB.delete();

    DB.version(1).stores({
        Event: "EventId, Name, StartDate, EndDate, Description, OriginalUserId, DateCreated, IsArchived, IsRecurring, CreatedInGCal",
        Pipeline: "PipelineId, Name, Image, DateCreated, DateArchived, Statuses",
        ApiLogs: "APILogId, UserCode, FunctionName, Success, Error, Parameters, ReturnVal, Date",
        MySelf: "Type, Data"
    });

その後、削除DB.delete()して再ロードしました。これは、良い習慣ではなく、DB の状態が損なわれた可能性がある場合に備えて言っています。

ありがとう

4

1 に答える 1