แนะนำ Knex js

สำหรับผู้ที่เขียน 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 ( selectinsertupdatedelete) สามารถเขียนได้ง่าย โดยมีฟังก์ชั่นมาให้พร้อมใช้งานแล้ว

ตัวอย่างการใช้คำสั่ง 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()