Node.js 简介
什么是 Node.js?
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时,主要用于构建高效、可扩展的服务器端应用。
info
Node.js 适用于 Web 开发、API 服务器、实时应用等多个场景。
Node.js 主要应用场景
领域 | 说明 | 主要库/框架 |
---|---|---|
Web 开发 | 构建后端 API 服务器和 Web 应用 | Express, Koa, NestJS |
实时应用 | 构建 WebSocket 聊天应用等 | Socket.io, WS |
服务器端渲染 | 使用 SSR 提升 SEO 和性能 | Next.js, Nuxt.js |
命令行工具 | 构建 CLI 应用 | Commander, yargs |
微服务架构 | 构建分布式系统 | Fastify, Moleculer |
Node.js 代码示例
- JavaScript
- TypeScript
console.log("Hello, Node.js!");
console.log("Hello, Node.js with TypeScript!");
Web 开发示例
- Express
- Koa
const express = require("express");
const app = express();
app.get("/", (req, res) => {
res.send("Hello, Express!");
});
app.listen(3000, () => console.log("Server running on port 3000"));
const Koa = require("koa");
const app = new Koa();
app.use(async (ctx) => {
ctx.body = "Hello, Koa!";
});
app.listen(3000, () => console.log("Server running on port 3000"));
实时应用示例(WebSocket)
const WebSocket = require("ws");
const server = new WebSocket.Server({ port: 8080 });
server.on("connection", (socket) => {
socket.send("Hello WebSocket Client");
socket.on("message", (message) => {
console.log(`Received: ${message}`);
});
});
命令行工具示例
const { program } = require("commander");
program
.version("1.0.0")
.description("A simple CLI tool")
.option("-n, --name <name>", "Your name")
.action((options) => {
console.log(`Hello, ${options.name || "World"}!`);
});
program.parse(process.argv);
部署 Node.js 应用
使用 PM2 运行 Node.js 应用
npm install -g pm2
pm start app.js --name my-app
pm2 list
pm2 restart my-app
使用 Docker 部署 Node.js 应用
FROM node:16
WORKDIR /app
COPY package.json .
RUN npm install
COPY . .
CMD ["node", "app.js"]
EXPOSE 3000
结论
Node.js 是构建现代 Web 和实时应用的强大工具,广泛应用于服务器端开发、微服务、命令行工具等场景。