node sqlite3
Komunitas node menyediakan banyak solusi untuk memakai SQLite di platform Node.js. Salah satu yang paling populer adalah modul node-sqlite3
.
Instal
node sqlite3
merupakan binding modul JavaScript yang asinkron untuk database sqlite3.
Untuk penginstalan modul ini ketik perintah berikut
$ npm install sqlite3 --save
CRUD
Operasi database seperti Create, Read, Update dan Delete untuk database SQLite sangat mudah seperti pada contoh berikut
app.js
/**
* Akses SQLite 3
*/
var sqlite = require('sqlite3').verbose();
var file = 'film.db';
var db = new sqlite.Database(file);
var fs = require('fs');
// Sample Data
var film = {
judul: "Keramat",
release: "2009",
imdb: "http://www.imdb.com/title/tt1495818/",
deskripsi: "Film horror paling horror!"
}
var filmUpdate = {
id: 1,
deskripsi: "Best Indonesian Horror Movie."
}
// SQL Statement
var CREATE_TABLE = "CREATE TABLE IF NOT EXISTS fdb ( id INTEGER PRIMARY KEY AUTOINCREMENT, judul TEXT NOT NULL, release TEXT NOT NULL, imdb TEXT, deskripsi TEXT )";
var INSERT_DATA = "INSERT INTO fdb (judul, release, imdb, deskripsi) VALUES (?, ?, ?, ?)";
var SELECT_DATA = "SELECT * FROM fdb";
var UPDATE_DATA = "UPDATE fdb SET deskripsi=$deskripsi WHERE id=$id";
// Run SQL one at a time
db.serialize(function() {
// Create table
db.run(CREATE_TABLE, function(err) {
if (err) {
console.log(err);
} else {
console.log('CREATE TABLE');
}
});
// Insert data with sample data
db.run(INSERT_DATA, [film.judul, film.release, film.imdb, film.deskripsi], function(err) {
if (err) {
console.log(err);
} else {
console.log('INSERT DATA');
}
});
// Query all data
selectAllData();
// Update data
db.run(UPDATE_DATA, {$deskripsi: filmUpdate.deskripsi, $id: filmUpdate.id}, function(err){
if(err) {
console.log(err);
} else {
console.log('UDATE DATA');
}
});
selectAllData();
db.run('DELETE FROM fdb WHERE id=$id', {$id:1}, function(err){
if(err) {
console.log(err)
} else {
console.log("DELETE DATA");
};
})
});
function selectAllData() {
db.each(SELECT_DATA, function(err, rows) {
if (!err) {
console.log(rows);
}
})
}
Aplikasi diatas akan membuat tabel fdb
, memasukkan data baru kemudian data tersebut akan di update dan terakhir akan dihapus.
Contoh diatas memakai API berikut ini
db.serialize()
db.run(operasi_sqlite, callback)
Dengan memakai fungsi db.serialize()
maka eksekusi sql akan di eksekusi secara serial atau berurutan dan operasi SQL apa saja bisa di eksekusi oleh node-sqlite3 dengan memakai metode db.run()
tersebut.
Penjelasan API lebih lanjut untuk Node SQLite bisa dilihat pada link berikut