100%
← Quay lại

Node.js

AI bổ sung
Runtime

Nó là gì?

Môi trường chạy JavaScript/TypeScript phía server, xây dựng trên engine V8 của Chrome, dùng mô hình event-driven, non-blocking I/O để xử lý nhiều kết nối đồng thời với ít thread.

Dùng để làm gì?

Xây dựng REST/GraphQL API, server-side rendering (Next.js, Nuxt), real-time apps (WebSocket), CLI tools, build tools (Vite, Webpack), microservices, serverless functions, xử lý file/stream, tác vụ nền (cron, queue workers).

Chạy ở đâu?

Server (Linux/Windows/macOS), VPS, container (Docker/K8s), serverless (Vercel, AWS Lambda, Cloudflare Workers), edge runtime, desktop (Electron, Tauri), CI/CD pipelines.

Nó thường đi với gì?

Express, Fastify, Hono, NestJS, Next.js, Nuxt, TypeScript, npm/pnpm/yarn, PostgreSQL/MySQL/MongoDB (qua driver/ORM), Redis, Docker, PM2, Vitest/Jest, ESLint/Prettier.

App của mình khi nào cần?

Cần chạy JS/TS ngoài trình duyệt; cần hiệu năng I/O cao cho API, streaming, real-time; team dùng JS/TS full-stack; cần hệ sinh thái package khổng lồ (npm); deploy serverless/edge; viết tooling, script tự động hóa.

Khi nào không cần?

Ứng dụng CPU-intensive nặng (video encoding, ML training) — nên dùng Rust/Go/C++ qua native addon hoặc service riêng; hệ thống real-time cực thấp latency (high-frequency trading) — cân nhắc C++/Rust; môi trường không cho chạy binary Node (một số embedded/restricted).

Từ khóa lỗi thường gặp

ECONNREFUSED, EADDRINUSE, ENOTFOUND, EMFILE (too many open files), ERR_MODULE_NOT_FOUND, ERR_REQUIRE_ESM, RangeError: Maximum call stack size exceeded, JavaScript heap out of memory, Node version incompatible, EPERM/EACCES (permission), unhandled promise rejection.

Một câu để nhớ

V8 + event loop + npm = JavaScript chạy mọi nơi, không chỉ browser.