Giới thiệu về Node.js (cơ bản cho người bắt đầu)

3 min read

Node.js là một công nghệ phát triển web nổi bật, đặc biệt phù hợp cho việc xây dựng các ứng dụng phía server. Trong bài viết này, chúng ta sẽ tìm hiểu về Node.js, cách cài đặt và hướng dẫn dựng một REST API đơn giản.

Mở đầu giới thiệu

Node.js là một môi trường chạy JavaScript phía server, được xây dựng trên V8 – công cụ JavaScript mạnh mẽ của Google Chrome. Được tạo ra bởi Ryan Dahl vào năm 2009, Node.js cho phép các nhà phát triển sử dụng JavaScript để viết các ứng dụng server-side. Với khả năng xử lý số lượng kết nối lớn một cách hiệu quả, Node.js trở thành lựa chọn hàng đầu cho các ứng dụng real-time như chat, streaming và API.

Cách cài đặt Node.js

Để bắt đầu sử dụng Node.js, bạn cần cài đặt Node.js và npm (Node Package Manager). Dưới đây là các bước cài đặt Node.js trên các hệ điều hành khác nhau:

Cài đặt trên Windows:

  1. Truy cập trang web nodejs.org.
  2. Tải về trình cài đặt cho Windows.
  3. Chạy trình cài đặt và làm theo các hướng dẫn trên màn hình.

Cài đặt trên macOS:

  1. Truy cập trang web nodejs.org.
  2. Tải về trình cài đặt cho macOS.
  3. Chạy trình cài đặt và làm theo các hướng dẫn trên màn hình.

Hoặc bạn có thể sử dụng Homebrew:

brew install node

Cài đặt trên Linux:

Bạn có thể cài đặt Node.js thông qua trình quản lý gói như apt, yum, hoặc cài đặt thủ công từ source.

Ví dụ, trên Ubuntu:

sudo apt update
sudo apt install nodejs
sudo apt install npm

Kiểm tra cài đặt:

Sau khi cài đặt, bạn có thể kiểm tra phiên bản của Node.js và npm bằng các lệnh sau:

node -v
npm -v

Dựng REST API

Sau khi đã cài đặt Node.js, chúng ta sẽ dựng một REST API đơn giản sử dụng Express – một framework web mạnh mẽ cho Node.js.

Bước 1: Khởi tạo dự án

Tạo một thư mục mới cho dự án và khởi tạo dự án Node.js:

mkdir my_rest_api
cd my_rest_api
npm init -y

Bước 2: Cài đặt Express

Cài đặt Express và các gói cần thiết khác:

npm install express

Bước 3: Tạo server với Express

Tạo một file index.js và thêm mã sau:

const express = require('express');
const app = express();
const port = 3000;

app.use(express.json());

app.get('/', (req, res) => {
  res.send('Hello World!');
});

app.listen(port, () => {
  console.log(`Server is running on http://localhost:${port}`);
});

Bước 4: Tạo các endpoint REST API

Thêm các route để xử lý các request API. Chỉnh sửa file index.js như sau:

const express = require('express');
const app = express();
const port = 3000;

app.use(express.json());

let items = [];

// Get all items
app.get('/api/items', (req, res) => {
  res.json(items);
});

// Get a specific item by id
app.get('/api/items/:id', (req, res) => {
  const item = items.find(i => i.id === parseInt(req.params.id));
  if (!item) return res.status(404).send('Item not found');
  res.json(item);
});

// Create a new item
app.post('/api/items', (req, res) => {
  const item = {
    id: items.length + 1,
    name: req.body.name
  };
  items.push(item);
  res.status(201).json(item);
});

// Update an item
app.put('/api/items/:id', (req, res) => {
  const item = items.find(i => i.id === parseInt(req.params.id));
  if (!item) return res.status(404).send('Item not found');
  item.name = req.body.name;
  res.json(item);
});

// Delete an item
app.delete('/api/items/:id', (req, res) => {
  const itemIndex = items.findIndex(i => i.id === parseInt(req.params.id));
  if (itemIndex === -1) return res.status(404).send('Item not found');
  const deletedItem = items.splice(itemIndex, 1);
  res.json(deletedItem);
});

app.listen(port, () => {
  console.log(`Server is running on http://localhost:${port}`);
});

Bước 5: Chạy server

Chạy lệnh sau để khởi động server:

node index.js

Mở trình duyệt và truy cập http://localhost:3000 để xem kết quả.

Kết luận

Node.js là một công nghệ mạnh mẽ cho việc phát triển ứng dụng web và REST API. Với sự hỗ trợ của các framework như Express, bạn có thể dễ dàng xây dựng các ứng dụng server-side nhanh chóng và hiệu quả. Hãy thử sức với Node.js và trải nghiệm sức mạnh của nó trong việc phát triển ứng dụng web hiện đại.

Avatar photo

Leave a Reply

Your email address will not be published. Required fields are marked *