Async await sqlite in javascript

Related searches

I'm looking at this tutorial, which has a library called aa-sqlite in order to replace Promises() syntax with async-await.

I'm not seeing aa-sqlite on npm. Is there another, updated syntax for async await sqlite?

Here is what I'm trying with the standard sqlite library:

const sqlite3 = require('sqlite3').verbose();
let db = new sqlite3.Database("tmp.db")

async function myfunc(db) {
  let sql = "SELECT id id FROM TABLE LIMIT 2"
  let res1 = await db.run(sql)
  console.log(res1)
  for (row of res1) {
    console.log(row);   
  }

But this yields

TypeError: res1 is not iterable

I am not expecting res1 to be an object, but instead an iterator of results. How can I async/await the results of a db.run query in ES7/ES8?

Try the sqlite package, rather than the sqlite3 used in the demo. It has better support for async await.

Async await sqlite in javascript, clean_db = async function() { await db. run("delete from users"); await db. run("delete from members"); await db. run("delete from guilds"); db. Async/Await is a new syntax for writing asynchronous code in JavaScript to make asynchronous code in a synchronous way. The word async is used before a function that means a function always return

I sort of tried sqlite npm package, which implements async/await over splite3, but it is not that easy to use.

A simple way is to create a little module and promessify the main sqlite3 functions.

Here is my simple module I created for a Discord chatbot database:

const sqlite3 = require('sqlite3');
const util    = require('util');

let db = new sqlite3.Database('./db/chatbot.sqlite3', sqlite3.OPEN_READWRITE, (err) => {
    if (err) {
        console.error(err.message);
    }
    console.log('Connected to the chatbot database.');
});

db.run = util.promisify(db.run);
db.get = util.promisify(db.get);
db.all = util.promisify(db.all);

// empty all data from db
db.clean_db = async function() {
  await db.run("delete from users");
  await db.run("delete from members");
  await db.run("delete from guilds");
  db.run("vacuum");
}

// any kind of other function ...

// and then export your module

module.exports = db;

How to use - now you can use the module like this in your code:

const db = require('./db');

// get one user
const myUser = await db.get("select * from users where id = ?", [id]);
if (! myUser)
    return console.log("User with id", id, "not found");

// get all users
const users = await db.all("select * from users");
users.map((user) => { console.log(user.id, "/", user.name); });

// ... etc ...

Getting Sqlite running with await/async and expressjs/polkajs, js alternative. If you know expressjs then you fell at home. We are using the sqlite -async NPM package here instead of sqlite or sqlite3� Interface to turn each SQLite function synchronous and use them with await. Requires the SQLite for Node module and Node.js 8.0 with support to async/await. SQLite is most commonly used as a storage unit for local or mobile apps, so the asynchrous style to write and read in the database is useless, and callbacks are not the best solution when one need to access the data from various parts of a program.

You are note seeing the aa-sqlite package because it's not a npm package.

The guy who wrote the tutorial you are refering simply put how he created this small aa-sqlite package, and it's all written inside the tuto, but it has not been published on npm.

sqlite-async, js with async/await. Interface to turn each SQLite function synchronous and use them with await. Requires the SQLite for Node module and Node. The await operator is used to wait for a Promise. It can be used inside an Async block only. The keyword Await makes JavaScript wait until the promise returns a result. It has to be noted that it

SQLite on Node.js with async/await, 'use strict'. var sqlite = require('sqlite3').verbose();. var db = new sqlite.Database(' test_db');. db.getAsync = function (sql) {. var that = this;. return new� mkdir sqlite-expressjs-async-await-blogpost cd sqlite-expressjs-async-await-blogpost git init npm init -y This will create a folder named SQLite-expressjs-async-await-blogpost. Then we change the directory to the just created one and initialize git and create a new package.json with the npm init command. The -y stands for yes accept everything.

sqlite-await.js � GitHub, Async / Await with the SQlite3 module I guess it was its way of saying that the SQlite3 module doesn't handle async / await operation. Well, it's not complicated. I have to look at how to make SQlite3 support async / await, or at worst I have to look for another module for SQlite that can do it.. Well, it's complicated:

The await keyword before a promise makes JavaScript wait until that promise settles, and then: If it’s an error, the exception is generated — same as if throw error were called at that very place. Otherwise, it returns the result. Together they provide a great framework to write asynchronous code that is easy to both read and write.

Comments
  • what does console.log(res1) log?
  • Database { open: true, filename: 'tmp.db', mode: 65542 }
  • @Mittenchops You cannot use for ..of with objects. See developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
  • I think your package - sqlite3 does not support promise or async/await syntax. In ES6, you can wrap callback based functions with Promise, which are essentially a return value with state (pending, resolved, rejected).