![image](/uploads/images/nodejs-1024x538.png)
Nodejs bản chất là code javascript được viết ở trên server express là 1 framework của nodejs Restfull api là gì Là một tiêu chuẩn dùng trong việc thiết kế API cho các ứng dụng web REST hoạt động chủ yếu dựa vào giao thức HTTP. Các hoạt động cơ bản nêu trên sẽ sử […]
Nodejs bản chất là code javascript được viết ở trên server
express là 1 framework của nodejs
Restfull api là gì
Là một tiêu chuẩn dùng trong việc thiết kế API cho các ứng dụng web
REST hoạt động chủ yếu dựa vào giao thức HTTP. Các hoạt động cơ bản nêu trên sẽ sử dụng những phương thức HTTP riêng.
- GET (SELECT): Trả về một Resource hoặc một danh sách Resource.
- POST (CREATE): Tạo mới một Resource.
- PUT (UPDATE): Cập nhật thông tin cho Resource.
- DELETE (DELETE): Xoá một Resource
Status code
Khi chúng ta request một API nào đó thường thì sẽ có vài status code để nhận biết sau:
- 200 OK – Trả về thành công cho những phương thức GET, PUT, PATCH hoặc DELETE.
- 201 Created – Trả về khi một Resouce vừa được tạo thành công.
- 204 No Content – Trả về khi Resource xoá thành công.
- 304 Not Modified – Client có thể sử dụng dữ liệu cache.
- 400 Bad Request – Request không hợp lệ
- 401 Unauthorized – Request cần có auth.
- 403 Forbidden – bị từ chối không cho phép.
- 404 Not Found – Không tìm thấy resource từ URI
- 405 Method Not Allowed – Phương thức không cho phép với user hiện tại.
- 410 Gone – Resource không còn tồn tại, Version cũ đã không còn hỗ trợ.
- 415 Unsupported Media Type – Không hỗ trợ kiểu Resource này.
- 422 Unprocessable Entity – Dữ liệu không được xác thực
- 429 Too Many Requests – Request bị từ chối do bị giới hạn
Graphql là gì
graphql là dựa trên yêu cầu của client gửi lên những dữ liệu nào cần thiết thì server chỉ trả về các trường dữ liệu đó. Resfull api thì trả về tất cả các dữ liệu đầy đủ.
graphql chỉ dùng cho việc get các dữ liệu còn việc thêm sửa xoá thì vẫn dùng resfull api
Typescript là gì
TypeScript là gì? – Là một ngôn ngữ được Microsoft tặng free cho chúng ta, nền tảng của TypeScript ít nhiều cũng có sự liên quan đến JavaScript vì nó là một ngôn ngữ mã nguồn mở của JavaScript. Vai trò của TypeScript là dùng để thiết kế và xây dựng các dự án ứng dụng quy mô lớn mang tính chất phức tạp.
Các kiểu dữ liệu được sử dụng phổ biến nhất:
- Any – Một biến với kiểu này có thể có giá trị là một string, number hoặc bất kỳ kiểu nào.
- String – Giống chức năng của string trong JavaScript, có thể được bao quanh bởi ‘dấu nháy đơn’ hoặc “dấu nháy kép”.
- Number – Tất cả giá trị số trong hàm đều được biểu diễn bởi kiểu number, không có định nghĩa riêng cho số nguyên (interger), số thực (float) cũng như các kiểu khác.
- Boolean – true hoặc false, sử dụng 0 và 1 sẽ gây ra lỗi biên dịch.
- Arrays – Có 2 kiểu cú pháp: my_arr: number[]; hoặc my_arr: Array<number>.
- Void – sử dụng khi hàm không trả lại bất kỳ giá trị nào.
ES6 là gì
ECMAScript 6 (hay còn được gọi là ES6, ES2015) là phiên bản mới nhất của chuẩn ECMAScript. Chuẩn này được phê duyệt vào tháng 6/2015. Nó là một bản nâng cấp quan trọng cho ES kể từ ES5 đã được chuẩn hoá vào năm 2009.
Các tính năng của es6:
- Block
như es5 thì sử dụng cách khai báo biến var, es6 phát triển thêm các kiểu khai bào biến let và const các kiểu khai báo này khác biệt ở chỗ là nó giới hạn scope sử dụng biến đó
- Arrow function
es5 sử dụng tên hàm là function thì es6 chuyển thành dùng dấu mũi tên như =>
const ham = ()=>{
// xu ly logic
}
- Template Literals
Bình thưởng sử dụng nối string như "Hello " + name nay chuyển thành `Hello ${name}`
- Destructuring Assignments
là tính năng tách các phần tử của Array hoặc Object thành nhiều biến chỉ bằng một đoạn code duy nhất
let date = [8,7,2022]
let [d,m,y] = date
console.log(a,m,y) // result 872022
- Set gía trị mặc định
sử dụng dấu ||. set ví dụ sau
let ten = fullname || "Tran Van A"
biến fullname chưa được khai báo hoặc có giá trị undefined, null thì biến ten sẽ có giá trị Tran Van A
- Rest Parameters
có nghĩa là bạn có thể khai báo một hàm với số lượng tham số không xác định, đây là một tính năng mới khiến Javascript ngày càng trở nên mạnh mẽ hơn. Để khai báo các tham số còn lại của một function thì bạn đặt 3 dấu chấm
const ham = (biena, bienb, ...other)=>{
console.log(biena, bienb, other)
}
ham("1", "2", "3", "4")
... còn có tác dụng copy các phần tử trong mảng
let array1 = [1,2]
let array2 = [3,4]
let aray3 = [...array1, ...array2]
console.log(array3) // [1,2,3,4]
- Multi-line String
var content = `ten toi la
Tran Tien
`
console.log(content);
- Enhanced Object Literals
ES6 mang lại khả năng mô tả object một cách gọn gàng hơn
xét ví dụ sau
es5 thì viết như
function createSinger (name, age, address, salary) {
return {
name : name,
age : age,
address : address,
salary : salary,
...
}
}
es6 thì
const createSinger = (name, age, address, salary) => {
return {
name,
age,
address,
salary,
...
}
}
- Promise và async await
Trong js nhiều trường hợp code chạy bất đồng bộ . mà mình lại làm chức năng mà kết quả của các biến phụ thuộc lẫn nhau nên Promise và async await ra đời
ví dụ sử dụng promise
const promise = new Promise(function(resolve, reject){
resolve('Success!');
});
promise.then((success)=>{
console.log(success);
}
);
trường hợp reject
const promise = new Promise((resolve, reject)=>{
reject('Error!');
});
promise.then(success=>{
console.log(success);
}
).catch(error=>{
console.log(error)
});
ví dụ về async await
let ham = async ()=>{
let a = await callfunc1();
let b = await callfunc2();
const c = a + b
return c
}
- Class in ES6
ví dụ minh hoạ
class Rectangle {
constructor(height, width) {
this.height = height;
this.width = width;
}
get area() {
return this.calcArea();
}
calcArea() {
return this.height * this.width;
}
}
const square = new Rectangle(10, 10);
console.log(square.area);
Tham khảo source code tại đây