# KẾT NỐI VỚI MYSQL – NODEJS – 05

### KẾT NỐI VỚI MYSQL – NODEJS – 05

[June 6, 2016](https://landolatui.wordpress.com/2016/06/06/ket-noi-voi-mysql-nodejs-05/)

Bài viết này mình sẽ chia sẻ với các bạn cách kết nối server nodejs với database.\
Thông thường chúng ta thường nghe đến cặp đôi Nodejs & MongoDB.\
Nhưng trong bài viết này, mình chọn cơ sở dữ liệu là Mysql quen thuộc của chúng ta. Và mình sẽ chia sẻ cách viết đơn giản nhất.

Chúng ta bắt đầu nhé.

## Bước 1: Tạo Database với Mysql

Mình dùng xampp để tạo một database với tên là \`test\_db\`. Rồi mình tạo 2 table đơn giản là \`m\_user\` và \`m\_role\`.\
Các bạn xem hình minh họa cấu trúc bảng bên dưới nhé.

![server request](https://lh3.googleusercontent.com/4qMGCmaOXKwYDtA2ufQ59jeXgm-C5EdnyZIJU09wNe0Mmv6B-mWPSPyb6qr1muuclPERA6iRitbKQmcFzip1Hq1i36XGiP5fG-ttir5T073Lf-u47ovvmSUMQ_Ot_Fme9fpOpMds8O7G2pMi_b8bD4KLQtUQ6-Yfz0VfJR9-Lt3RL1wrQ7zxO4MtPzWaZPuKDcF5KJjtFaRp-piXkOMFtL_nzrUAn9reb1HD_BmVBZbL7v3r8zs14BRmEx8bEY46of-ycBpmxLYdJa67aCKanZCK6ax6-PWyoQbNE3gJkuEE0X4-dI-uofVkSANeDcY7qj3Hx39Lpb9YbhnLlJasrvpp-g-9sCf6HCyhiAnv3p4NBSGG5pBg-dWmR3_AKG7oocE9ApId4esOum6kIC3gtdVydtiKWXfCd8r6cpG3FgkV6MG349jwoIRcCu03HRCtMcLt-IpUUYSloPcFlZfV4jCgrvCwU4OHHfqsY3u6fva-wiHriA-J8g1u9E1TbmiVVeC5nhLv09fosZCU6uHlVLhND5-XEjxvWQAmwuWJcEB4QJC4WFGoHM_BkWZ9Le_oSpu7GZlgZhutz6P_rQI9jYTaFWhUNNc=w783-h506-no)

Và mình có dữ liệu trong 2 bảng \`m\_user\` & \`m\_role\` như sau:

![server request](https://lh3.googleusercontent.com/MIO_c3xOfD2SpbLW1_nQBDYiet_OTk6v4L2eI8CEFrly5CjGuZKEi9DKJy32D6YJuAM0989axwRWvlJhcq5C0khyC6l05P1wHqTp4aXRbCdrdbOH3AinD5OCNRVmbcMxOspVKRa0Axsvd6UapfJVWiPc1qtwPBfpWlCOYfD8ZipiArwx2EUjZTsNQGYJcVqof6b0tSx3emiRoAU4JS4X1kqUkdXZKdSLdLirVUGHwcgKWUx4Q1pQ7226bKnCs_UJ0xBDm6r6uLFIArOyiGl5Rx-57K7rzwQqbiExGChXfFrD3BLWqJylPNVNzR7Q3w9Rl919uaezMjkOodSwPV1w_wuFLktBJM8EkiRN3GMfR1QfxHzgSFKyo6w3oJMBOBnRJ0tL2uzCKi9uTQKQr3mShWKwD2grwpJJZKj48bZQFPPoqf75ilWihq7oBFPORj3GQLSxYSh4p1mj_NyRbJke5Ixti_LzUwCh01JTuHg0wh99s8xePaQYcgxHXoRdRAiIPIPsUfF8l3VdpVbGrz8mU2O3PtETnN5bBRXro4vAF294C7WLbA_n6nBGY00v8bJUO0doJXQubKqdojLdwg3T1wDE-Lnt_EM=w951-h664-no)

![server request](https://lh3.googleusercontent.com/NTxVtcj04jhk4qmB3ive-xabWmGeXJWv1UYTXYS45a7U8dNUV9lPEp_FwfGhZr7_bYJJmBZw1Gzuv8_EXfO8f_Xt9kRhgWPKmW6tQPpwqsDWd-G1G0YepkdFpTOOCApxzYPWb6PdjWc7_y9-bs8X-l4OrZdjjrc40-M51055074WRx3RfRMwU0a0pmed2ZxlZqXJTF5Olr82WTsXr7ULDAVDvkupGsfttEwgOu6vhs6MTh8Qtao9FLsGXbSV3as_yE7QtWBqam0gzyWpAls0XvruTwk19lSqtfJKhOvOJ8w9O1QSf-XFP14YWTPETHlOs8Z5aQBOx1hArVUPwjxUdzu3UOHv-w6Tk1Pp4f_V1w2l13R7vIUqQx4woaYkiGCAd-EJJTnCYcq8Ddj1RxVs-eiHGP0YfIh7SWXBI9poOFwDDmNxMIH2-WHphRKIcxmy3PJMvL6Kaw5Gs_dvG1XzPfLarUr0hHoTuS2qsb1U2Nu3nXPCnu4ETjCBgeFoxezgIweJ-GNEL1HHRzN4i2oJrMJ30HQ4ihFWab9IsoaNZ_U2uYokPn_t1M-Io48BpLF5355hkZ2Hqi0THnQVeJ9IxwdQIU69oHk=w1029-h514-no)

## Bước 2: Tạo Server lắng nghe request với Express framework

Về [Express framework](https://landolatui.wordpress.com/2014/10/28/express-js-nodejs-04/) thì mình đã chia sẻ ở bài viết trước. Nếu bạn nào chưa biết thì tham khảo [EXPRESS.JS – NODEJS – 04](https://landolatui.wordpress.com/2014/10/28/express-js-nodejs-04/) nhé.

Bây giờ mình sẽ tạo một file server.js, và đặt trong thư mục demo tên là mysql\_demo trong ổ C (C:/mysql\_demo/server.js)

Tải module Express về nhé. Với thao tác quen thuộc, mở Command Prompt, di chuyển vào thư mục mysql\_demo và chạy lệnh:cd C:\mysql\_demo\
npm install express

Tiếp theo mình sẽ viết vài dòng code để định nghĩa một server có thể lắng nghe request từ client trong file server.js.

**server.js**var express = require(*“express”*);\
var app = **express()**;\
**app.get**(*“/user”*, function(req, res){

**res.send**(*“Hello!!!”*);

});\
**app.listen**(*“2244”*,*“127.0.0.1”*);\
console.log(*“—– server is listening —–“*);

Chạy thử xem server của chúng ta đã hoạt động chưa nhé.

![server request](https://lh3.googleusercontent.com/3t96-d3-DvsXr_f-v5SQGPuLSEme0swJsXmcrUE39SGyaOXxrmih2nLdIsm16WwHXzkxl4ojkIen885PkR6DtT2fD4Nw0cJle1soVkx22mYjIWrMv34W0JsdFEVH53J9iAMOjcvGIhn3cnWiWCQucUy1OMmn0BIkfmoknx8T1dSK79pteeVUVvDW2IhjUR1-9LpDYuh_1ZjeJHOs13F6OgG8LBdxP3YiXFBOmbGzhsiUn4FnubZ12hYYUPD1NcT6p9LMfFkL4CDvc9xmQYw03HiFbeOzBtlSz5cUhY8LcPjk2hqvC7GJaBsE5TPeBMpztMHaLwyeZnyY3CuiRlUWda4bKm8ciQCjZOu0usBNEU9FxSf-nNxs783DHvxz5vdSqhZ4r4m3e7lNn1CyHAGEpHPZzF6-p97Tv5MpFSBt0eu_fu-XRlBowPqLvRs0gsef9ol2-qdMZFB0fzEG4QdWQjVvBRUDLjOO_4JIzPN-JnKjRW1sVUz_9y4jYV28GqW7w0ezwYah-pkmVaUIkjLY50ieqUtv9Fn17WF9qck_6PC7LEt0TEuTIPvocIfihdMEZKVeBRjxDJh3O15gAEz3XW1ldaexj7E=w299-h89-no)

Như vậy server đã hoạt động ok rồi nhé. Tiếp theo, mở trình duyệt lên, gõ <http://localhost:2244/user>

Ta thấy trình duyệt phản hồi lại như hình bên dưới:

![server request](https://lh3.googleusercontent.com/8ReI3bhAfE16ZumV1jxtjpH9JcPM_vrRdbSFS2YOqf97boQMkSoZRctoHklFjl5n6vQgcbVbtv8Z-AuXWPC13fWGZG_8u8UnvQJ903zpL3xaPZBUuRY9UJZ5UiNPknlWs8775t2mPm1h9pjDPPllwzWuGiiYj-rePNhXxxMe3DEPRA5EQ-JTKHtUs4b9BAyd5VuPuotsDUEry3WPSkaJtbd_pU4gXVDDGxQB_kcogSZfpNViasBE9BCUjPo3uS_SbSLnM5SuKjxsgtrsphHd81n-VypnNfPS56mmhJEVegyQEDZRBonRnNDYihUzXRWo_Q6obfnur9ip7bdB5xdJsfzxbyHOJGt8yaV9oiHRW5Mvw5-Zkc9IiqbYce1C34NDroeFZcJeR4Zoyc2C48hBCV_1C5JZ3YOZmdFF7CFt8364N5UGwEiKc9rYCrbVbJlMoDQUhj5GrWKHQdcG45CYCj-b5Gka05TAT2iBbSoqdU_QktgsIRTg4IexK-0VYBJJgvp1gvGI7tcCDbfHUhJAaGaZWMtL-RQSf_CceK3itrjQQaARfRZMLrcippNJQdXHQ6kajzDIR5OEt3yqgusg_YxgwUqnHYI=w413-h188-no)

Ok, như vậy server đã hoạt động tốt. Mình qua bước tiếp theo là kết nối với Mysql

## Bước 3: Kết nối với Mysql

Ở bước này, trước tiên các bạn cần tải gói mysql về. Mình sử dụng gói mysql với phiên bản 2.10.2cd C:\mysql\_demo\
npm install mysql\@2.10.2

Rồi, mở file server.js lên, và viết thêm vài dòng code để kết nối với database nhé.

**server.js**var express = require(*“express”*);\
var mysql = require(*“mysql”*); *// include thêm module mysql*\
var app = **express()**;\
\&#xNAN;*// Tạo kết nối với Database*\
var pool = **mysql.createPool**({\
host: *“localhost”*,\
user: *“root”*,\
password: *null*,\
database: *“test\_db”*,\
});\
**app.get**(*“/user”*, function(req, res){

*// Viết câu truy vấn sql*\
var sql = *“SELECT \* FROM \`m\_user\`”*;*// Thực hiện câu truy vấn và show dữ liệu*\
**pool.query**(sql, function(error, result){\
if (error) throw error;\
console.log(*“– USER TABLE — “* , result);\
**res.json**(result); *// Trả kết quả về cho client dưới dạng json*\
});

});\
**app.listen**(*“2244”*,*“127.0.0.1”*);\
console.log(*“—– server is listening —–“*);

Rồi, bây giờ mình sẽ restart server bằng cách chạy lại lệnh node server.js

Sau đó mình sẽ refresh lại trình duyệt.

Kết quả hiện trong Command Prompt:

![server request](https://lh3.googleusercontent.com/lglno9AQfKxqv2TTfuFuHvVv1QfQld7bQ9AZCS-DOlVg-R4nHJev6QVz7TfUyosLGTnMZ3O1c1GOjOVHz-aknA6OJQ6OZawzHuzg6KI0R4NegsU3YM3IkhA3wPS-9W3KZhDN_f2tHQQMq6Z81kxDhd1iIAI2VqFx31gdTgbOdqcCCE9M-woueQShdGEOtMzSHhertwUh56zkGaGwVsQ-P3PBkFrG9A8pQfWhS60WntmrvYFfybfzlLAXYc-xrSioLL1rxL5QdYP3xc7vzp-LPodST4yW_TO5r9MUxp3dfFHN_xpgUzVh97aH7VADedZBKuSUY_Ao7SBsJjpWBL9eAZKUUkhfYvjMzKsmcXjwVsNZTxJgNbAmwBp8Q9xcJLsXsvio565z3koTBuVy18soB5cC-zbU_9lON6EYRhlJtj9nXjjmcMVmNJAW5626qZzI5acptKtcWkPEwXVvzcd8PvyaIAINWTsCVvsrFXb67VFUu-yOAsTjfgu-HTvxlyLdB2f_xGIXtq393ugukpQHT_r5Tt2J__qP3UFIaVLPHXSstT4YoNh2PplV_iRzIIaqB3jfunBh4LMS5erYP_sPcbu3KbeaJ6c=w622-h708-no)

Kết quả hiện trên trình duyệt:

![server request](https://lh3.googleusercontent.com/q9eVsMkwcILK-hqrIOJTLD3-QEuLFUFRG2_OwkErND87fBtOxQqcYjPMZLFEKAPqfDUfum-Kzxo2IUA811BIZM1DVQ7HeEUwAG2C_4cNiHrMqVVxgzUemL6r6yDCc3DF3Zb9XlB8Cx7deAee9NAJL9OZ5HJOWZShhGEE1Xn3diiotY2zJcDEn7fkIKqBkywf3XPKJtHjAP3ztxlH7xcEaUCS46egHDVWswPN2BcjpZ82s3P7QGi6e7jnV82wKEpwx5fQekPe8i2oonTZsg2tUJ7BGUFen7uX2PruteOVLhjBR2BN2iZqA5gtruXWWEovn7QkavhUfHe4B2tTAoch0D_3LojrgCuD4X32b1SsmVehDpiYGb1wgKp3Px1WCNjznWk5d9HoryAbyfefEI_0aUVdwcGDT95BI4eOw5vug5s79J2ZCZFO-ls2C9pL_coxSIitQEsOwj7O8-Q3bFjIMOa0fgkEBvZ8v-CbfvChU4dppg-gIvitaBw--CEJUcuraJyLaJ36ySu5B7uADl2PmKzHlSJ4kuC8lOnQBx1qb5el8WSYvweMPMbOWVVGrmlHin8Ln0sWPshQWUH1WXpRGTWnk0YIboU=w475-h514-no)

Như vậy là mình đã thành công trong việc kết nối với cơ sở dữ liệu là Mysql và lấy được dữ liệu ra.

Để lấy dữ liệu của từng record, các bạn chỉ việc gọi phần tử thứ i mà bạn muốn lấy của mảng result. Mình ví dụ:console.log(result\[0].email); *// <nguyen001@gmail.com>*

Như vậy là xong phần demo kết nối Nodejs với Mysql. Chúc các bạn thành công.

#### Share this:

* [Click to share on Twitter (Opens in new window)](https://landolatui.wordpress.com/2016/06/06/ket-noi-voi-mysql-nodejs-05/?share=twitter\&nb=1)
* [Click to share on](https://landolatui.wordpress.com/2016/06/06/ket-noi-voi-mysql-nodejs-05/?share=facebook\&nb=1)
