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

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 服务器。

js 复制代码
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 服务器示例:

js 复制代码
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 路由

js 复制代码
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 配置:

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 反向代理

相关推荐
阿珊和她的猫11 分钟前
autofit.js: 自动调整HTML元素大小的JavaScript库
开发语言·javascript·html
1892280486129 分钟前
NY270NY273美光固态闪存NY277NY287
服务器·网络·数据库·科技·性能优化
你好,赵志伟2 小时前
Socket 编程 TCP
linux·服务器·tcp/ip
Liang_GaRy3 小时前
心路历程-三个了解敲开linux的大门
linux·运维·服务器
阿珊和她的猫5 小时前
v-scale-scree: 根据屏幕尺寸缩放内容
开发语言·前端·javascript
gnip10 小时前
vite和webpack打包结构控制
前端·javascript
玩转以太网10 小时前
基于W55MH32Q-EVB 实现 HTTP 服务器配置 OLED 滚动显示信息
服务器·网络协议·http
小晶晶京京11 小时前
day34-LNMP详解
linux·运维·服务器
画个太阳作晴天11 小时前
A12预装app
linux·服务器·前端
烛阴12 小时前
前端必会:如何创建一个可随时取消的定时器
前端·javascript·typescript