【JavaScript 】1. 什么是 Node.js?(JavaScript 服务器环境)

发布于:2025-03-14 ⋅ 阅读:(14) ⋅ 点赞:(0)

1. 什么是 Node.js?(JavaScript 服务器环境)

1.1 Node.js 定义

Node.js 是一个 基于 Chrome V8 引擎的 JavaScript 运行环境,用于运行 JavaScript 代码,特别适合 服务器端开发

特点:
非阻塞(异步 I/O) → 处理高并发请求更高效。
事件驱动 → 采用 Event Loop 机制,无需创建多个线程。
单线程 → 适用于 I/O 密集型应用(如 Web 服务器、API)。
npm(Node Package Manager) → 内置 npm,可安装丰富的第三方库。


1.2 企业中的 Node.js 应用

📌 案例 1:企业级 Web 服务器

场景:公司需要一个 快速响应的 Web 服务器,用于提供 REST API。
解决方案:使用 Node.js + Express.js 创建一个 HTTP 服务器。

const http = require('http');

const server = http.createServer((req, res) => {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello, World!\n');
});

server.listen(3000, () => {
  console.log('Server running at http://localhost:3000/');
});

企业价值:高性能、支持大规模并发访问。


📌 讲义示例

讲义中的 API 服务器示例:

const express = require('express');
const app = express();
app.get('/', (req, res) => {
  res.send('Hello World!');
});
app.listen(3000, () => {
  console.log('Server running at http://localhost:3000/');
});

💡 讲义中的示例展示了如何使用 Node.js 结合 Express.js 创建 API 服务器


3. 什么是 API 路由?(定义 API 访问路径)

3.1 API 路由定义

API 路由 指的是 定义 URL 访问规则,让前端或第三方系统可以正确访问 API。

特点:
清晰的 URL 设计 → 避免 /getUser 这种不规范的写法。
基于资源的 RESTful 路由/users/:id 获取特定用户数据。
参数化 URL → 例如 /users/:id/orders 获取某个用户的订单。


3.2 企业中的 API 路由应用

📌 案例 3:订单管理 API

场景:公司需要提供 订单管理 API,前端应用调用以查询和创建订单。
解决方案:使用 Express.js 定义清晰的 API 路由

const express = require('express');
const app = express();
app.use(express.json());

let orders = [{ id: 1, user: 'Alice', total: 50 }];

// 获取所有订单
app.get('/orders', (req, res) => {
  res.json(orders);
});

// 获取指定订单
app.get('/orders/:id', (req, res) => {
  const order = orders.find(o => o.id == req.params.id);
  order ? res.json(order) : res.status(404).json({ error: '订单不存在' });
});

// 创建新订单
app.post('/orders', (req, res) => {
  const newOrder = { id: orders.length + 1, ...req.body };
  orders.push(newOrder);
  res.status(201).json(newOrder);
});

app.listen(3000, () => {
  console.log('API 服务器运行在 http://localhost:3000');
});

企业价值:RESTful API 设计,前端、APP、合作方可调用相同 API 访问订单数据。


📌 讲义示例

GET /api/users
GET /api/users/:id
POST /api/users
PUT /api/users/:id
DELETE /api/users/:id

💡 企业 API 设计时,应该遵循 RESTful 路由设计,避免 /getUser 这样的不规范路径。


4. 什么是反向代理?(负载均衡和安全优化)

4.1 反向代理定义

反向代理(Reverse Proxy)位于客户端和服务器之间的代理服务器,用于提高性能、安全性、负载均衡

特点:
隐藏后端服务器 → 提供统一入口,保护真实服务器 IP。
负载均衡 → 把请求分配到不同服务器,减少单台服务器压力。
SSL 终止 → 代理服务器处理 HTTPS,减少应用服务器计算压力。


4.2 企业中的反向代理应用

📌 案例 4:Nginx 负载均衡

场景:企业需要高并发 API 服务器,防止单点故障。
解决方案:使用 Nginx 作为反向代理,分发请求到多个服务器

Nginx 配置:

server {
    listen 80;
    location /api/ {
        proxy_pass http://backend_servers;
    }
}

upstream backend_servers {
    server backend1.example.com;
    server backend2.example.com;
}

企业价值:分流流量,提高系统稳定性,防止服务器崩溃。


📌 讲义示例

ifn666.com {
  handle /locallib/* {
    reverse_proxy localhost:3000
  }
  handle /carhire/* {
    reverse_proxy localhost:3005
  }
}

💡 示例展示了如何使用反向代理分发流量,提升后端 API 服务器性能。


总结

概念 作用
Node.js 运行 JavaScript 服务器代码
Express.js Node.js Web 框架,简化 API 开发
API 路由 设计清晰的 RESTful API 路由
反向代理 提供负载均衡、隐藏服务器

你可以尝试:
用 Express.js 创建 REST API
配置 Nginx 反向代理