Hướng dẫn npm mysql2 - npm mysql2

Tạo project

Để tạo project ta di chuyển đến thư mục project và thực thi dòng lệnh sau bằng cmd hoặc gitbash

npm install express --save && npm install mysql --save && npm install body-parser --save
0 câu lệnh này sẽ tạo cho bạn 1 file package.json tại thư mục hiện hành với các thông tin của project mặc định

{
  "name": "RESTfullApi",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}

Cài đặt package

sử dụng dòng lệnh sau để cài đặt các package cần thiết cho project:

npm install express --save && npm install mysql --save && npm install body-parser --save

Tạo server

Tiếp theo ta tạo file có tên server.js

var express = require['express'];
var bodyparser = require['body-parser'];
  
var app = express[];
app.use[bodyparser.urlencoded[{extended: true}]];
app.use[bodyparser.json[]];
  
var server = app.listen[3000, function[] {
  console.log['Server listening on port ' + server.address[].port];
}];
module.exports = app;

ta import 2 package express và body-parser. Rồi cấu hình server Port thông qua hàm app.listen. Ở đây mình sử dụng port 3000 các bạn có thể sử dụng port khác tùy ý

Tạo database cho project

CREATE TABLE `testapi`.`sinhvien` [ `id` INT NOT NULL AUTO_INCREMENT , `name` VARCHAR[100] NOT NULL , `class` varchar[255], `dob` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP , PRIMARY KEY [`id`]] ENGINE = InnoDB

Tạo connect tới database

Để connect tới database mysql ta tạo file Dbconnection.js và import package mysql vào:

var mysql=require['mysql'];
var connection=mysql.createPool[{
 
host:'localhost',
 user:'root',
 password:'',
 database:'testapi'
 
}];
module.exports=connection;

chúng ta thay đổi các thông tin sau cho phù hợp với server của bạn:

host: địa chỉ server database
user: tên truy cập vào database
password: password truy cập vào database
database: Tên database

Tạo model

Ta tạo model có các function tương ứng: getAllSinhVien : get toàn bộ sinh viên getSinhVienById: get sinh viên theo id addSV: thêm mới sinh viên deleteSV: delete sinh viên updateSV: update sinh viên

var db = require['../Dbconnection'];

var SinhVien={
	getAllSinhVien:function[callback]{
		return db.query["Select * from sinhvien",callback];
	},
	getSinhVienById:function[id,callback]{
		return db.query["select * from sinhvien where Id=?",[id],callback];
	},
	addSV:function[sinhvien,callback]{
		return db.query["Insert into sinhvien[name,class,dob] values[?,?,?]",[sinhvien.name,sinhvien.class,sinhvien.dob],callback];
	},
	deleteSV:function[id,callback]{
		return db.query["delete from sinhvien where Id=?",[id],callback];
	},
	updateSV:function[id,sinhvien,callback]{
		return db.query["update sinhvien set name=?,class=?,dob=? where Id=?",[sinhvien.name,sinhvien.class,sinhvien.dob,id],callback];
	}
};
 module.exports=SinhVien;

Tạo route

Tạo file routes.js để điều hướng khi ta input url tương ứng

var express = require['express'];
var router = express.Router[];
var SinhVien = require['./Models/SinhVien'];
router.get['/:id?',function[req,res,next]{
    if[req.params.id]{
        SinhVien.getSinhVienById[req.params.id,function[err,rows]{
            if[err]{
                res.json[err];
            }
            else{
                res.json[rows];
            }
        }];
    }else{
        SinhVien.getAllSinhVien[function[err,rows]{
            if[err]{
                res.json[err];
            } else {
                res.json[rows];
            }

        }];
    }
}];

router.post['/',function[req,res,next]{
    SinhVien.addSV[req.body,function[err,count]{
        if[err]{
            res.json[err];
        } else{
            res.json[req.body];
        }
    }];
}];

router.delete['/:id',function[req,res,next]{
    SinhVien.deleteSV[req.params.id,function[err,count]{
        if[err]{
            res.json[err];
        } else{
          res.json[count];
        }
    }];
}];

router.put['/:id',function[req,res,next]{
    SinhVien.updateSV[req.params.id,req.body,function[err,rows]{
        if[err]{
            res.json[err];
        } else{
            res.json[rows];
        }
    }];
}];
module.exports=router;

Chúng ta quay lại server.js và add thêm nội dung sau để import sử dụng dbconnection và routes vừa tạo

var connection = require['./Dbconnection'];
var routes = require['./routes'];

app.use['/',routes];

Test

chạy câu lệnh để khởi động server:

node server.js

sau đó bạn có thế dùng POSTMAN của chrome để test ví dụ dùng method GET trong postman GitHub code: //github.com/bacalepr1992/RESTfullApi

Chủ Đề