Connect NodeJS Express FW and DB SQL Server


Heyyo lại là mình đây. Hôm nay mình sẽ hướng dẫn các bạn cách kết nối back-end Nodejs sử dụng Express frameword với DB là SQL Server. SQL Server thì không phải bàn rồi, nó được ưu tiên khởi đầu ở các trường nên rất được đông đảo các bạn sinh viên biết đến. Thường thì với Nodejs back-end người ta nghĩ ngay đến Database là MongoDB cho phù hợp với MERN (MongoDB, Expressjs, React, Nodejs) hay MEAN (MongoDB, Expressjs, Angular, Nodejs) Stack, nhưng với từng nhu cầu của dự án mà ta có thể chọn một loại DB phù hợp





Oke bắt đầu thôi !






Phần SQL Server





Trước tiên ta cần enable TCP/IP protocol của SQL Server bằng cách mở Sql Server Configuration













Để việc enable này được apply ta cần restart lại Service SQL Server (Right Click >> Restart)









Ta đặt một PORT mặc định cho TCP/IP Protocol (Right Click >> Properties). Ở đây là 1433 do Driver SQL Server phía back-end sử dụng PORT này









Sau bước này, ta cần Restart lại Service SQL Server tương tự bước trên.





Đây là các thiết lập cứng cho SQL Server





Ta mở SQL Server lên và Connect tới DB như bình thường. Ở bước này ta cần thay đổi phương thức xác thực từ Windows Authentication mode sang SQL Server and Windows Authentication mode









Tiếp theo ta cần tạo một tài khoản login để xác thực đăng nhập vào SQL và phân quyền cho tài khoản này (Right Click >> New >>Login)









Tab Server Roles









Tab User Mapping. Ở đây mình chọn DB là Covid19 (Gồm 1 table duy nhất là Articles)









Tab Securebles









Ở đây mình chỉ DEMO cho các bạn nên mình set quyền của Account này là cao nhất. Trường hợp dự án của các bạn như thế nào thì set roles sao cho hợp lý nhé





Oke thế là ta tạo thành công một tài khoản Login. Thử đăng nhập vào bằng tài khoản vừa tạo nhé













Nếu thành công thì ta đã hoàn thành phần config SQL rồi đấy






Phần Back-end Express JS





Khởi đầu một dự án với





npm init





Tiếp theo ta cần install module express và driver mssql





npm install express mssql --save





Ta tạo một file server.js với nội dung như sau





const express = require('express');
const sql = require("mssql");

const PORT = process.env.PORT || 8080

const app = express();

app.get('/api/articles', function (req, res) {

// config DB
var config = {
user: 'pa_nqt', // Thay thông tin đăng nhập của tài khoản vừa tạo
password: '**********', // Password
server: 'localhost', // Ở đây mình đặt DB trên localhost
database: 'Covid19', // Chổ này thay bằng DB name của bạn
options: {
enableArithAbort: true,
encrypt: true
}
};

// connect database
sql.connect(config, function (err) {

if (err){
console.log(err);
}

// create Request object
var request = new sql.Request();

// query to the DB
request.query('SELECT * FROM Articles', function (err, recordDataSet) {

if (err){
console.log(err);
}

// send records as a response
res.send(recordDataSet);

});
});
});

var server = app.listen(PORT, () => console.log(`Server is starting at port ${PORT}`));




Phía server mình tạo 1 route duy nhất là /api/articles đế trả về data khi thực hiện một câu truy vấn nào đó





Start Server





node server.js





Sang browser kiểm tra kết quả









Tada... không quá khó khăn đúng không nè





Chúc các bạn thành công !





Github: https://github.com/Nguyen-Quoc-Thai/express-sql-connection









WriterQuốc Thái





Follow me via:
Facebook
Github


Nhận xét