สำหรับผู้ที่เขียน web แล้วต้องมีการเชื่อมต่อกับ database นั้น การเชื่อมต่ออาจไม่ใช่เรื่องง่าย ถ้าจะใช้ JavaScript มาช่วยอาจมีความซับซ้อนหรือมีความยุ่งยากมาก ดังนั้นจึงมี tool เพื่อนำมาใช้ในการจัดการ database โดยเฉพาะผู้ที่ถนัด Node.js และ Browser โดย tool ที่กล่าวถึงนั้น คือ “knex.js”
knex.js เป็น SQL query builder ที่สามารถต่อกับฐานข้อมูลได้หลากหลาย สามารถที่จะเรียนรู้เข้าใจง่ายและสามารถปรับเปลี่ยนได้ตลอด โดยปัจจุบันสามารถรองรับการทำงานกับ database Postgres, MSSQL, MySQL, MariaDB, SQLite3, Oracle, และ Amazon Redshift สามารถรันได้ทั้ง Node.js และ Browser รองรับ transactions, polling, streaming queries, promise และอื่นๆ
การติดตั้งสามารถลงผ่าน npm ได้เหมือน ตัวอื่นๆในตระกูล Node เช่น
npm install knex –save
และโหลด library สำหรับเชื่อมต่อฐานข้อมูลต่างๆ ผ่านคำสั่งดังนี้
npm install pg
npm install sqlite3
npm install mysql
npm install mysql2
npm install oracle
npm install mssql
ตัวอย่างการ connect กับ database Mysql
var knex = require(‘knex’)({
client: ‘mysql’,
connection: {
host : ‘127.0.0.1’,
user : ‘your_database_user’,
password : ‘your_database_password’,
database : ‘myapp_test’
}
});
การใช้คำสั่งของ sql ( select
, insert
, update
, delete
) สามารถเขียนได้ง่าย โดยมีฟังก์ชั่นมาให้พร้อมใช้งานแล้ว
ตัวอย่างการใช้คำสั่ง select
Ex1 : select * from f_student_payment สามารถใช้คำสั่ง
knex.select().table(‘f_student_payment’) หรือ
knex.select().from(‘f_student_payment’)
Ex2 : select ‘payment_id’, ‘student_id’, ‘address’ from ‘f_student_payment’
knex.select(‘payment_id’, ‘student_id’, ‘address’).from(‘f_student_payment’)
Ex3 : select * from ‘f_student_payment’ where ‘student_id’ = ‘5710121045’
knex(‘f_student_payment’).where(‘student_id’, ‘5710121045’)
ตัวอย่างการใช้คำสั่ง insert
Ex4 : insert into ‘f_student_payment’ (‘student_id’) values (‘621012025’)
knex(‘f_student_payment’).insert({ student_id : ‘621012025’})
ตัวอย่างการใช้คำสั่ง update
Ex5 : update ‘f_student_payment’ set ‘student_id’ = ‘621012025’
knex(‘f_student_payment’).update(‘student_id’, ‘621012025’)
ตัวอย่างการใช้คำสั่ง delete
Ex6 : delete from f_student_payment where student_id = ‘621012025’
knex(‘f_student_payment’)
.where(‘student_id’, ‘621012025’)
.del()