Mysql có phải là api không

Hướng dẫn tạo Restful API với Nodejs, Express và mysql. Như tiêu đề hôm nay mình sẽ hướng dẫn các bạn làm sao tạo được một Restful API đơn giản CRUD (tạo, đọc, cập nhật, xóa). và Restful API này sẽ sử dụng các phương thức chính như GET, POST, PUT, DELETE



Để chuẩn bị cho quá trình xây dựng API chúng ta cần cài đặt nodejs và npm trên máy tính. to install các bạn vào đây để tải bộ cài về máy tính. Ngoài ra, bạn cũng nên cài đặt LAMP trên máy tính nữa nhé

1. Tạo dự án

Để dễ dàng quản lý chúng ta tạo một thư mục TODO. To started an project using nodejs we doing as after.
Duy chuyển đến thư mục TODO và thực thi dòng lệnh bên dưới bằng cmd hoặc gitbash.

npm init

Câu lệnh này sẽ tạo cho các bạn một gói tệp. json. File này sẽ giúp chúng ta lưu trữ những package cần thiết cho dự án nhng package đó là gì lác nữa chúng ta sẽ biết nhé.
The ta open file package. json bằng một trình soạn thảo chương trình bất kỳ tùy chọn nào mà bạn có thể thêm vào thông tin của dự án của chúng tôi để giúp bạn dễ dàng nhận biết sao này.

{
  "name": "TODO",
  "version": "1.0.0",
  "description": "Tạo Restful API với Nodejs, Express và mysql",
  "author": "LONG PHAM",
  "license": "MIT"
}

2. Gói cài đặt

This may also as part not loss quan in project of them ta because nêu không có những package này có lẽ cũng không thể chạy được project. to install them we use command thực thi lệnh bên dưới

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

3. Tạo máy chủ



Sau khi cài đặt thành công các gói trên chúng ta cần tạo môi trường cho Nodejs hay còn gọi là máy chủ. Việc tạo máy chủ cũng khá đơn giản. Đầu tiên chúng ta suy chuyển đến thư mục tạo một tệp có tên là máy chủ. js. Tên tệp các bạn cứ đặt tùy chọn nhé khi gọi thì chúng ta chỉ cần gọi đúng tên tệp là được

Open file server. js chúng ta thêm vào đoạn mã để khởi động máy chủ

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);
});

Tất cả những gì chúng ta cần làm là khai báo Express và body-parser. Sau đó chúng ta sẽ khai báo sử dụng Express và cấu hình body-parser chấp nhận yêu cầu nhập theo phương thức POST. Cuối cùng là cấu hình máy chủ Cổng thông qua ứng dụng chức năng. nghe. Ở đây tôi sử dụng cổng 3000 và bạn có thể sử dụng các cổng tùy chọn nếu cổng đã sử dụng, bạn hãy đổi lại cổng khác

4. Kiểm Tra Máy Chủ

Sau khi hoàn thành bước 3. Chúng ta tiến hành kiểm tra xem máy chủ vừa tạo có chạy không bằng cách thực thi lệnh

node server.js

Nếu thành công cấu hình sẽ thông báo Máy chủ đang lắng nghe trên cổng 3000

5. Tạo cơ sở dữ liệu

Chúng ta tiến hành tạo cơ sở dữ liệu sử dụng Mysql. Việc tạo cơ sở dữ liệu cũng khá đơn giản khi bạn có thể sử dụng phpMyAdmin để tạo hoặc đặt câu hỏi truy vấn bên dưới

CREATE DATABASE `todo`;
 
USE `todo`;
 
CREATE TABLE `todo`.`todo_list` ( `id` INT NOT NULL AUTO_INCREMENT , 
`name` VARCHAR(100) NOT NULL , 
`date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP , 
PRIMARY KEY (`id`)) ENGINE = InnoDB;

Tôi sẽ tạo một cơ sở dữ liệu có tên là gojo và trong cơ sở dữ liệu này, tôi sẽ tạo tiếp một bảng có tên là todo_list với các trường id là từ khóa chính, tên và ngày tháng

6. Create Connect To Database

Sau khi tạo xong cơ sở dữ liệu ở bước 5. Để máy chủ có thể kết nối tới cơ sở dữ liệu bằng Mysql thì chúng ta phải tạo một kết nối từ máy chủ lên Mysql phải không nào. Ở đây tôi sẽ tạo một tệp có tên kết nối. js. Nội dung File nhu sau

var mysql = require('mysql');
 
function Connection() {
  this.pool = null;
 
  this.init = function() {
    this.pool = mysql.createPool({
      connectionLimit: 10,
      host: 'localhost',
      user: 'root',
      password: '',
      database: 'todo'
    });
  };
 
  this.acquire = function(callback) {
    this.pool.getConnection(function(err, connection) {
      callback(err, connection);
    });
  };
}
 
module.exports = new Connection();

Trong Kết nối tệp. js chúng ta cần khai báo sử dụng Mysql. Tiếp theo chúng ta sẽ tạo một chức năng bao gồm các trình điều khiển kết nối với cơ sở dữ liệu mà chúng ta đã tạo và trả về kết quả

7. Create Futures Model

Sau khi tạo được kết nối với Cơ sở dữ liệu thành công, công việc tiếp theo sẽ tạo ra các tương tác trong mô hình như các phương thức nhận, tạo, đọc, cập nhật, xóa. Bắt đầu chúng ta cần tạo một thư mục có tên là Models. Duy chuyển đến thư mục Models, chúng ta tạo một tệp có tên để làm. js. Tại tệp này, chúng tôi sẽ viết các phương thức xử lý CRUD cho dự án của chúng tôi

var connection = require(‘../connection’);
 
function Todo() {
 
}
module.exports = new Todo();

Ban đầu các bạn cần khai báo kết nối tới CSDL sử dụng kết nối tệp. js các bạn đã làm ở bước 6. Tiếp theo tôi sẽ khai báo hàm có tên là todo(), hàm này sẽ bao gồm các hướng thức get, tạo, đọc, cập nhật, xóa bên trong và cuối cùng của hàm thức trả về kết quả thư mục thi



Tiếp tục chúng ta sẽ lần lượt tạo các phương thức bên trong. First first is get

________số 8

Hàm này sẽ trả về cho chúng ta một danh sách trong bảng todo_list

Tiếp theo là phương thức tạo

this.create = function(field_data, res) {
    connection.acquire(function(err, con) {
      con.query('insert into todo_list set ?', field_data, function(err, result) {
        con.release();
        if (err) {
          res.send({status: 1, message: 'TODO creation failed'});
        } else {
          res.send({status: 0, message: 'TODO created successfully'});
        }
      });
    });
  };

Chèn Sql thì chúng ta không còn bàng quang nữa phải không nào. mình chỉ nhấn mạnh các bạn chỉ nên chú ý vào field_data vì đây sẽ là một đối tượng mà nó sẽ chứa các đối tượng như cột tên cần chèn và giá trị chèn

Tiếp theo sẽ là cập nhật phương thức. Phương thức này cũng gần giống như là tạo chúng ta cũng sẽ truyền vào các đối tượng đối số như cột cần cập nhật, giá trị cần cập nhật và điều kiện cập nhật

{
  "name": "TODO",
  "version": "1.0.0",
  "description": "Tạo Restful API với Nodejs, Express và mysql",
  "author": "LONG PHAM",
  "license": "MIT"
}
0

Tiếp theo sẽ là phương thức đọc. Phương thức này cũng giống như phương thức get, nhưng chúng ta cần truyền thêm vào đối số get theo id

{
  "name": "TODO",
  "version": "1.0.0",
  "description": "Tạo Restful API với Nodejs, Express và mysql",
  "author": "LONG PHAM",
  "license": "MIT"
}
1

End of the end of the method delete

{
  "name": "TODO",
  "version": "1.0.0",
  "description": "Tạo Restful API với Nodejs, Express và mysql",
  "author": "LONG PHAM",
  "license": "MIT"
}
2

Do đó, chúng ta đã hoàn tất các chức năng của mô hình. tiếp theo chúng ta sẽ viết Endpoint để có thể thiết lập thông tin thi qua URL

8. Tạo URL điểm cuối

Chúng ta sẽ tạo các endpoint url theo cấu trúc như sau

Đường dẫnThuộc tínhPhương Thức/todo/GETtodo. nhận/việc cần làm/tạo/POSTtodo. tạo/việc cần làm/cập nhật/PUTtodo. cập nhật/việc cần làm/đọc/. id/PUTtodo. đọc/làm/xóa/. id/DELETElàm lại. xóa bỏ

Duy chuyển về thư mục gốc TODO chúng ta tạo một tệp có tên là route. js with after content

{
  "name": "TODO",
  "version": "1.0.0",
  "description": "Tạo Restful API với Nodejs, Express và mysql",
  "author": "LONG PHAM",
  "license": "MIT"
}
3

Quay lại chúng ta mở máy chủ tập tin. js chúng ta cần khai báo sử dụng kết nối tới CSDL và định tuyến tệp. Chúng ta thêm vào đâu máy chủ tập tin. js content after

{
  "name": "TODO",
  "version": "1.0.0",
  "description": "Tạo Restful API với Nodejs, Express và mysql",
  "author": "LONG PHAM",
  "license": "MIT"
}
4

Tiếp theo chúng ta sẽ khai báo khởi tạo kết nối và định tuyến cho máy chủ. Các bạn sẽ thêm đoạn code sau dòng khởi tạo Port nhé

{
  "name": "TODO",
  "version": "1.0.0",
  "description": "Tạo Restful API với Nodejs, Express và mysql",
  "author": "LONG PHAM",
  "license": "MIT"
}
5

Đến đây chúng ta đã hoàn tất bộ Restful API sử dụng Nodejs, Express và Mysql rồi. Các bạn nên thử lại bằng cách sử dụng POSTMAN (POSTMAN chorme) Các bạn có thể tải xuống tại đây. Chúc các bạn thành công