- vừa được xem lúc

[Nodejs] Koajs Bài 1: Hello world với Koajs

0 0 14

Người đăng: Trần Hải Đăng

Theo Viblo Asia

Trong tất cả mọi ngôn ngữ lập trình, hầu hết chúng ta đều bắt đầu bằng một chương trình Hello world đơn giản. Trong bài viết hôm nay, chúng ta sẽ cùng nhau viết một chương trình hello world và điểm lại những kiến thức trong đoạn code.

Hello world với Koajs

Đầu tiên, tạo một file index.js trong thư mục KoaShop: Trong index.js:

const Koa = require("koa");
const app = new Koa(); app.use(async ctx => { ctx.body = "Hello world";
}); app.listen(3000);

Trong đoạn code trên:

  • const Koa = require("koa");: import thư viện koa.
  • const app = new Koa();: khởi tạo app.
  • app.use(async ctx => { return ctx.body = "Hello world"; });: gắn một middleware(hàm sẽ được gọi khi có 1 request gửi tới) vào ứng dụng.
  • app.listen(3000);: khởi chạy app ở port 3000(http://localhost:3000).
    Để trực quan hơn, các bạn mở terminal để chạy app:
>> yarn nodemon index.js #yarn
#hoặc
>> nodemon index.js #npm

Và mở vào http://localhost:3000, kết quả sẽ như sau:

Chi tiết hơn về middleware trong Koajs

Trong chương trình bên trên, chúng ta có một middleware đơn giản là một async function nhận vào tham số ctx(tương đương với this, trong các version mới của koajs hầu hết sử dụng arrow function). Ctx vừa là request, vừa là response và nó cũng chứa rất nhiều methods hữu ích để viết web app và APIs. Tìm hiểu thêm. Ngoài ctx, hầu hết ứng middleware trong một Koa app đều có thêm một tham số nữa là next, dùng để tiếp tục đi đến middleware tiếp theo, ví dụ như đoạn code dưới đây:

app.use(async (ctx, next) => { ctx.body = "Hello world"; await next();
}); app.use(async (ctx) => { ctx.body = "Hello world 2";
})

Kết quả: Nhưng nếu bây giờ ta xóa mất dòng await next(); thì mọi người đoán sẽ ra thế nào?

app.use(async (ctx, next) => { ctx.body = "Hello world";
}); app.use(async (ctx) => { ctx.body = "Hello world 2";
})

Kết quả: Như vậy, ta có thể thấy rằng các middleware sẽ được gọi như một dòng thác, chảy từ trên xuống, nhưng nếu bằng cách nào đó ngăn dòng nước lại thì nó sẽ dừng hẳn, những middleware ở sau sẽ không được gọi, nên thường ta chỉ dừng khi thực sự cần thiết hoặc là khi handle error(tốt nhất là ở middleware đầu tiên).

Bình luận

Bài viết tương tự

- vừa được xem lúc

Áp dụng kiến trúc 3 Layer Architecture vào project NodeJS

The problem encountered. Các framework nodejs phổ biết như Express cho phép chúng ta dễ dàng tạo ra Resful API xử lí các request từ phía client một cách nhanh chóng và linh hoạt.

0 0 64

- vừa được xem lúc

Tìm hiểu về NestJS (Phần 2)

Trong bài viết trước, mình đã giới thiệu về NestJS và các thành phần cơ bản của framework này cũng như xây dựng demo một api bằng NestJS. Như mình đã giới thiệu, NestJS có một hệ sinh thái hỗ trợ cho chúng ta trong quá trình phát triển mà các framework khác như Express, Fastify,... phải tự build hoặ

0 0 154

- vừa được xem lúc

Xây dựng một REST API Skeleton với Node.js

Node.js đang dần trở nên phổ biến với những ứng dụng dạng microservice hay REST Api bới hiệu năng cực nhanh và tính bất đồng bộ của chúng.

0 0 35

- vừa được xem lúc

Xây dựng Restful Api bằng Nodejs

Mở đầu. Thực ra là không có mở đầu gì đâu mà hay làm ngay bước tiếp theo ! .

0 0 34

- vừa được xem lúc

CORS là gì? CORS với Nodejs

CORS (hay Cross-origin resource sharing) là gì . . Lỗi cors trên trình duyệt:. .

0 0 56

- vừa được xem lúc

[K8S] Phần 15 - Triển khai ứng dụng NodeJS lên K8S

Giới thiệu. Trong các phần trước mình đã giới thiệu về cách dựng một hệ thống Kubernetes Cluster với khá đầy đủ các thành phần cần thiết như:.

0 0 29