Как вставить данные в базу данных sqlite, используя общую функцию

Функция, которую я кодирую, будет вызываться из другого файла javascript, а поля и значения будут переданы функции, включая имя таблицы. Но когда я запускаю функцию, она просто выдает ошибку без этого сообщения об ошибке.

    We have encounter an Error WebSQLTransaction { "_complete": false, "_error": null, "_running": true, "_runningTimeout": false, "_sqlQueue": Queue { "first": undefined, "last": undefined, "length": 0, }, "_websqlDatabase": WebSQLDatabase { "_currentTask": TransactionTask { "errorCallback": [Function anonymous], "readOnly": false, "successCallback": [Function anonymous], "txnCallback": [Function anonymous], }, "_db": SQLiteDatabase { "_closed": false, "_name": "mydb.db", }, "_running": true, "_txnQueue": Queue { "first": Object { "item": TransactionTask { "errorCallback": [Function anonymous], "readOnly": false, "successCallback": [Function anonymous], "txnCallback": [Function anonymous], }, "next": Object { "item": TransactionTask { "errorCallback": [Function anonymous], "readOnly": false, "successCallback": [Function anonymous], "txnCallback": [Function anonymous], }, "next": Object { "item": TransactionTask { "errorCallback": [Function anonymous], "readOnly": false, "successCallback": [Function anonymous], "txnCallback": [Function anonymous], }, }, }, }, "last": Object { "item": TransactionTask { "errorCallback": [Function anonymous], "readOnly": false, "successCallback": [Function anonymous], "txnCallback": [Function anonymous], }, }, "length": 3, }, "version": "1.0", }, }

Итак, я создаю это, используя нативный javascript React, и использую SDK expo. Выставка поставляется в модуле SQLite. Опять же, что я делаю, так это создаю функцию, которую можно вызывать из любого места в коде, и передавать некоторые данные в базу данных.

   export const insert = (tbl, fields, values) =>{
    const query = "insert into ${tbl} (${fields}) values (${values});";
    console.info(query);
    //it looks fine to me
    db.transaction(trx => {
        let trxQuery = trx.executeSql(
           query
        ,[values],(data)=> console.info('we made it',data),(err)=>console.info('We have encounter an Error', err))
        console.info(trxQuery); // retruns undefined
    })
}

Вот как я назвал функцию

    const personObj = JSON.parse(personDetails);
        Object.keys(personObj).map(i => 
            insert('users','name, address, hash', [personObj[i].name, personObj[i].address, personObj[i].hash])
        )

Я ожидаю получить журнал консоли we made it и информацию о данных, которые мы вставили. Спасибо за твою помощь

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
1 121
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Обратный вызов успеха и ошибки имеет 2 параметра: первый - сама транзакция, второй - ошибка или набор результатов. Вы должны отредактировать свой код, как показано ниже, и проверить объект набора результатов,

`export const insert = (tbl, fields, values) =>{
    const query = "insert into ${tbl} (${fields}) values (${values});";
    console.info(query);
    //it looks fine to me
    db.transaction(trx => {
        let trxQuery = trx.executeSql(
             query
            ,[values]
            ,(transact,resultset) => console.info('we made it',resultset)
            ,(transact,err) => console.info('We have encounter an Error', err)
       );
    })
}`

Другие вопросы по теме