DANH MỤC: NODE.JS & MYSQL

Bài 2: Thực thi query MySQL với Node.js


Ở bài trước mình đã giới thiệu với mọi người về cách kết nối Node.js đến MySQL rồi. Bài này chúng ta sẽ tiếp tục đi vào thực hiện các câu truy vấn trong MySQL với Node.js bằng phương thức query.

1, Cú Pháp.

-Để thực hiện truy vấn MySQL bằng Node.js thì mọi người sử dụng cú pháp:

conn.query(sql,function (err, result, fields) {
   //code
});

Trong đó:

  • sql - là câu truy vấn SQL mà các bạn muốn thực hiện.
  • err - là biến chứa thông tin lỗi nếu có.
  • result - là biến chứa mảng object data trả về của câu truy vấn nếu có.
  • fields - là biến chứa mảng object chứa thông tin về từng trường của results trả về (nếu có).

2, Ví Dụ.

VD1: Tạo mới 1 table trong MySQL bằng Node.js.

var mysql = require('mysql');

var conn = mysql.createConnection({
    host    : 'localhost',
    user    : 'root',
    password: '',
    database: 'mysql_node',
});
//kết nối.
conn.connect(function (err){
    //nếu có nỗi thì in ra
    if (err) throw err.stack;
    //nếu thành công
    var sql = "CREATE TABLE city (id INT NOT NULL PRIMARY KEY AUTO_INCREMENT ,name varchar(30) not null, zipcode varchar(6))";
    conn.query(sql, function (err) {
        if (err) throw err;
        console.log('Tao thanh cong');
    });
});

Lúc này nếu thành công thì chương trình sẽ báo:

Tao thanh cong

 Để kiểm tra các bạn có thể truy cập vào database để xem.

Tạo bảng trong MySQL bằng node.js

VD2: Thêm mới dữ liệu vào bảng bằng Node.js.

var mysql = require('mysql');

var conn = mysql.createConnection({
    host    : 'localhost',
    user    : 'root',
    password: '',
    database: 'mysql_node',
});
//kết nối.
conn.connect(function (err){
    //nếu có nỗi thì in ra
    if (err) throw err.stack;
    //nếu thành công
    var sql = "INSERT INTO city(name,zipcode) values ('Ha Noi', '100000'),('T.P HCM','80000'), ('Da Nang', '50000'), ('Nam Dinh', '40000')";
    conn.query(sql, function (err) {
        if (err) throw err;
        console.log('Tao thanh cong');
    });
});

Nếu thành công thì kết quả trả về sẽ là: Tao thanh cong

Để chắc chắn các bạn vào phpmyadmin xem

Thêm dữ liệu trong MySQL

VD3: Select dữ liệu trong bảng.

var mysql = require('mysql');

var conn = mysql.createConnection({
    host    : 'localhost',
    user    : 'root',
    password: '',
    database: 'mysql_node',
});
//kết nối.
conn.connect(function (err){
    //nếu có nỗi thì in ra
    if (err) throw err.stack;
    //nếu thành công
    var sql = "SELECT * FROM city";
    conn.query(sql, function (err,results, fields) {
        if (err) throw err;
        console.log(results);
    });
});

Nếu đúng thì kết quả trả về sẽ có dạng.

[ 
  { id: 1, name: 'Ha Noi', zipcode: '100000' },
  { id: 2, name: 'T.P HCM', zipcode: '80000' },
  { id: 3, name: 'Da Nang', zipcode: '50000' },
  { id: 4, name: 'Nam Dinh', zipcode: '40000' }
]

VD4: Cũng như VD3 nhưng là lấy thông tin của các trường của dữ liệu.

var mysql = require('mysql');

var conn = mysql.createConnection({
    host    : 'localhost',
    user    : 'root',
    password: '',
    database: 'mysql_node',
});
//kết nối.
conn.connect(function (err){
    //nếu có nỗi thì in ra
    if (err) throw err.stack;
    //nếu thành công
    var sql = "SELECT * FROM city";
    conn.query(sql, function (err,results, fields) {
        if (err) throw err;
        console.log(fields);
    });
});

Kết Quả trả về sẽ có dạng:

[
    {
        catalog: 'def',
        db: 'mysql_node',
        table: 'city',
        orgTable: 'city',
        name: 'id',
        orgName: 'id',
        charsetNr: 63,
        length: 11,
        type: 3,
        flags: 16899,
        decimals: 0,
        default: undefined,
        zeroFill: false,
        protocol41: true 
    },
    {
        catalog: 'def',
        db: 'mysql_node',
        table: 'city',
        orgTable: 'city',
        name: 'name',
        orgName: 'name',
        charsetNr: 33,
        length: 90,
        type: 253,
        flags: 4097,
        decimals: 0,
        default: undefined,
        zeroFill: false,
        protocol41: true 
    },
    {
        catalog: 'def',
        db: 'mysql_node',
        table: 'city',
        orgTable: 'city',
        name: 'zipcode',
        orgName: 'zipcode',
        charsetNr: 33,
        length: 18,
        type: 253,
        flags: 0,
        decimals: 0,
        default: undefined,
        zeroFill: false,
        protocol41: true 
    } 
]

3, Lời kết.

-Như vậy, qua bài này mình đã giới thiệu xong đến mọi người cách thực thi truy vấn MySQL bằng Node.js rồi. Bài sau chúng ta sẽ tìm hiểu về kỹ thuật escaping trong mysql module.

Nguồn: Toidicode.com

Thông tin tác giả

Vũ Thanh Tài

Vũ Thanh Tài

The best way to learn is to share

Hãy tham gia group facebook để cùng giao lưu chia sẻ kiến thức! Tham Gia