Ta có thể xấy dựng webservice chỉ bằng node thôi cũng được cơ mà vậy thì code sẽ rất cực → ta sẽ sử dụng các thư viên và framwork để công việc code đơn giản hơn.
Cơ bản Express giống http của node vậy, là một package chuyên về viết webservice.
npm i express body-parser moongose cors
express là framwork express
body-parser là thư viên cho phép ứng dụng của ta đọc được phần body của request (req.body) nếu không thì đọc req.body sẽ bị lỗi.
moongose là một ORM cơ bản để kết nối với cơ sở dữ liệu MongoDB
cors giúp tránh lỗi Cross-Origin Resource Sharing khi trình duyệt kết nối tới webserver, nếu là app mobile hay ứng dụng desktop thì sẽ không gặp lỗi này.
const express = require('express'); // load express vào ứng dụng
const bodyParser = require('body-parser');
const cors = require('cors');
const mongoose = require('mongoose');
mongoose.connect('địa chỉ ip của database'); <- kết nối db
const app = express(); // định nghĩa đối tượng app, là một ứng dụng express.
// Tuỳ chỉnh cho app, ta sẽ thêm body-parser và cors cho app
app.use(bodyParser.urlencoded({extended: true}));
app.use(bodyParser.json());
app.use(cors());
// setup port của app
var port = process.env.PORT || 3000;
const router = require('./routers/router.js');
// phải gắn router với app
app.use('/api', router); <- gắn router xử lí khi người dùng GET địa chỉ localhost:3000/api/
// Chạy server
app.listen(port, () => {
console.log(`server is start at http://localhost:${port}/`);
}
File router.js
API
0
Search
Route
HTTP Action
ý nghĩa
1
/api/categories
GET
Lấy hết danh sách tất cả categories
2
/api/categories
POST
Tạo một category mới
3
/api/categories/:cate_id
GET
Lấy dữ liệu của category có id = cate_id
4
/api/categories/:cate_id
PUT
Cập nhật dữ liệu của category có id = cate_id
5
/api/categories/:cate_id
DELETE
Xoá dữ liệu của category có id = cate_id
There are no rows in this table
5
Count
const express = require('express');
// Để ứng dụng có cấu trúc hơn và dễ mở rộng hơn ta sẽ dùng router của express để thể hiện
// nhưng đường dẫn api mà app hỗ trợ.
const router = express.Router();
// middleware sẽ gọi với tất cả các request trong /api
router.use(function(req,res,next){
console.log('something');
next();
});
// có thể gắn middle ware với 1 router như sau router.get('/', middleWarehere, function(..
router.get('/', function(req, res){
res.json({ message: 'welcome hooman!' });
});
// Làm việc với database đây nè POST /api/categories
router.post('/categories', function(req, res){
var category = new Category(); <- Tạo một schema đối tượng.