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

相关推荐
kite01211 小时前
浏览器工作原理06 [#]渲染流程(下):HTML、CSS和JavaScript是如何变成页面的
javascript·css·html
крон1 小时前
【Auto.js例程】华为备忘录导出到其他手机
开发语言·javascript·智能手机
ABB自动化3 小时前
for AC500 PLCs 3ADR025003M9903的安全说明
服务器·安全·机器人
coding随想3 小时前
JavaScript ES6 解构:优雅提取数据的艺术
前端·javascript·es6
努力学习的小廉3 小时前
深入了解linux系统—— 进程池
linux·运维·服务器
年老体衰按不动键盘3 小时前
快速部署和启动Vue3项目
java·javascript·vue
灵感__idea3 小时前
JavaScript高级程序设计(第5版):无处不在的集合
前端·javascript·程序员
秃头菜狗4 小时前
各个主要目录的功能 / Linux 常见指令
linux·运维·服务器
利刃大大4 小时前
【在线五子棋对战】二、websocket && 服务器搭建
服务器·c++·websocket·网络协议·项目
星辰引路-Lefan4 小时前
深入理解React Hooks的原理与实践
前端·javascript·react.js