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

相关推荐
我即将远走丶或许也能高飞1 小时前
vuex 和 pinia 的学习使用
开发语言·前端·javascript
爱吃泡芙的小白白2 小时前
Vue 3 核心原理与实战:从响应式到企业级应用
前端·javascript·vue.js
小技工丨2 小时前
华为TaiShan 200 2280 ARM服务器虚拟化部署完整指南
运维·服务器·arm开发
码上成长2 小时前
JavaScript 数组合并性能优化:扩展运算符 vs concat vs 循环 push
开发语言·javascript·ecmascript
油丶酸萝卜别吃3 小时前
Mapbox GL JS 表达式 (expression) 条件样式设置 完全指南
开发语言·javascript·ecmascript
摘星编程3 小时前
用React Native开发OpenHarmony应用:timing定时动画参数
javascript·react native·react.js
JosieBook4 小时前
【Vue】12 Vue技术—— Vue 事件修饰符详解:掌握事件处理的高级技巧
前端·javascript·vue.js
摘星编程4 小时前
在OpenHarmony上用React Native实现AnimatedValue补间动画
javascript·react native·react.js
weixin_430750934 小时前
OpenMediaVault debian Linux安装配置企业私有网盘(三) 静态ip地址配置
linux·服务器·debian·nas·网络存储系统
摘星编程4 小时前
React Native鸿蒙版:AnimatedXY双轴动画完整代码
javascript·react native·react.js