Tạo một web RESTful API bằng Node.js đơn giản (Phần 1)

18 May 2019 — Written by Chính Phạm
#node.js#restful api#express.js

Xin chào các bạn, hôm nay mình sẽ hướng dẫn các bạn cách tạo ra một trang Web RESTful API đơn giản với Node.jsExpress.js. Tùy vào mục đích sử dụng.

Tuy là đơn giản nhưng cũng yêu cầu bạn phải có kiến thức sơ sơ Javascript trước đã. Hoặc các bạn có thể làm theo hướng dẫn của mình rồi tìm hiểu sau.

Chuẩn bị

Nếu đây là lần đầu tiên bạn sử dụng Node.js và chưa đụng chạm gì tới npm thì bạn cần phải thực hiện các bước sau để cài đặt.

Ở bài viết này, mình hướng dẫn trên 🍏 macOS 10.14.4, nên bạn nào sử dụng window hoặc linux thì có thể làm tương tự hoặc nếu không được đoạn nào thì comments bên dưới nhá. Mệt nhất là ngồi setup môi trường thôi, còn code thì Javascript như nhau cả. Khổ trước sướng sau thế mới... à mà thôi 😂

Để cho chắc kèo thì bạn nên kiểm tra xem máy của mình đã cài Node.js chưa, tiếp theo bạn mở terminal lên và nhập:

node -v

Kiểm tra phiên bản Node.js

Sau khi kiểm tra xong thì ở terminal sẽ in ra phiên bản node.js hiện tại trên máy, ở đây của mình là v11.14.0.

Nếu chưa có thì các bạn vào link dưới đây để tiến hành tải và cài đặt nhé.

🚀 Tải xuống Node.js (Các bạn chọn giúp mình phiên bản là LTS để tải nhé)

🚀 Tải xuống Visual Studio Code

🚀 Tải xuống Sublime Text 3

Và mình gợi ý nho nhỏ là bạn nên dùng Visual Studio Code hoặc Sublime Text để code 👨‍💻. Lý do là hai trình biên dịch/trình soạn thảo text này hiện tại rất mạnh và có quá trời thư viện hỗ trợ, giúp các bạn tiết kiệm được khối thời gian đấy (mình sẽ có một bài giới thiệu sau). Cứ chọn bản mới nhất mà download 😂

Re Nguyễn Anh Văn: có phải trình biên dịch đâu a ơi, nó là trình chỉnh sửa text thôi

Cảm ơn bạn đã góp ý, thực ra thì Visual Studio CodeSublime Text có thể dùng để soạn thảo hay cài thêm một số gói cần thiết để làm trình biên dịch luôn cũng được, bản thân mình có những lúc build trực tiếp trên sublime text luôn, chứ tab ra tab vào terminal hơi bất tiện. Các bạn có thể cài thêm package Nodejs để build trên sublime text nha! Đối với Visual Studio Code thì bạn vào View > Terminal rồi gỏ lệnh và build trực tiếp mà không cần cài thêm gói nào.

🚀 Nodejs Package

Giới thiệu về express-generator (Option)

Có thể bạn đã biết, chúng ta có thể sử dụng express-generator để tạo một Web RESTful API rất chi là nhanh và hỗ trợ đầy đủ.

Nhưng mình muốn hướng dẫn cho các bạn đi từ cơ bản đến cận nâng cao luôn 😝, với lại việc dùng express-generator cho project đơn giản sẽ có rất nhiều tệp bổ sung mà các bạn chưa cần dùng tới. Trong phạm vi của bài viết thì mình chỉ dùng một số framework cần thiết, giúp bạn có thể hiểu rỏ hơn mà không bị lan man sang phần khác. Tham khảo rồi áp dụng cho project thực tế của bạn nhé 😬


Tạo Project

Sau một hồi luyên thuyên thì chúng ta cùng bắt tay vào làm thôi 😅

Mở nơi chứa project lên và tạo một mục tùy theo tên mà bạn đặt, ở đây project mình đặt là simple-restful-api và mình lưu nó ở Desktop.

Tiếp đến các bạn mở Terminal và nhập như sau:

Chuyến đến thư mục của project

cd Desktop/simple-restful-api

Khởi tạo ban đầu

npm init

Tiếp đến nó sẽ hỏi các bạn một số thông tin cho project, cứ enter theo mặc định nhé (bạn có thể nhập khác, ví dụ version 2x, 3x, description...etc)

Khởi tạo Project

Sau một hồi Enter mỏi tay thì các bạn nhập vào chử yes để kết thúc quá trình khởi tạo project nha 😂.

Cài express

npm i express

Nói sơ qua cho bạn nào chưa biết. Express js là một Framework nhỏ, nhưng linh hoạt được xây dựng trên nền tảng của Nodejs. Nó cung cấp các tính năng mạnh mẽ để phát triển web hoặc mobile.

Cài body-parser

npm i body-parser

Sử dụng body-parse mục đích là lấy dữ liệu mẫu trong req.body khi bạn thao tác hay xử lý dữ liệu của người dùng gửi lên server, mình sẽ có một bài riêng giải thích và cách sử dụng body-parse, trong bài viết này thì bạn chỉ cần làm theo là ok 😂

Tạo file main

touch app.js

Chổ này mặc định là index.js, lúc mà mình gỏ npm init ấy, tại mình thích để app.js thôi, chứ bạn thích gỏ tên gì cũng được, ví dụ: server.js, main.js...vân vân và mây mây 🤣

Các bạn không nhất thiết phải gỏ touch app.js nha, vì có thể tạo file nhiều cách khác nhau mà 😁

Sau một loạt thao tác trên thì chúng ta có gì nào 🙄:

package.json

{
  "name": "simple-restful-api",
  "version": "1.0.0",
  "description": "",
  "main": "app.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "Chính Phạm",
  "license": "ISC",
  "dependencies": {
    "body-parser": "^1.19.0",
    "express": "^4.17.0"
  }
}

app.js

const express = require('express')
const app = express()
const path = require('path')
const router = express.Router()
const port = process.env.PORT || 3000
const bodyParser = require('body-parser')

app.use(bodyParser.urlencoded({ extended: true }))
app.use(bodyParser.json())

app.use('/', (req, res) => {
	res.status(200).send({
		message: 'Xin chào Việt Nam!'
	})
})

app.listen(port)
console.log('Server listening on port: ' + port)

Tiếp theo, để test thử server thì các bạn vào terminal gỏ giúp mình node tên_file_main:

node app

Sau khi terminal xuất hiện:

Server is running from port: 3000

Bạn bật trình duyệt lên và truy cập: http://localhost:3000 xem thử nhé!

// http://localhost:3000/

{
  "message": "Xin chào Việt Nam!"
}

Vậy là ok rồi đó, chúc mừng nhé 😂

Cơ mà khoan mừng vội, đây chỉ là mới khởi tạo đơn giản thôi, làm chưa tới 5p là xong 😢

Xem qua project của mình bây giờ có gì nào 😝

- simple-restful-api
|
| - node_modules
| - app.js
` - package.json 
  • node_modules đây là nơi chứa toàn bộ framework đã cài và liên quan
  • app.js Đây được xem là đầu não của project
  • package.json Nơi chứa thông tin của project, các framework đã cài, và một số config cho project.

Kết thúc phần 1 tại đây. Cảm ơn bạn đã xem bài viết này!

Đây là bài viết đầu tiên của mình nên rất mong các bạn góp ý và cho mình nhận xét để các bài viết sau tốt hơn 💚x3000