【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 分钟前
在Spark搭建YARN
前端·javascript·ajax
光影少年34 分钟前
vue中,created和mounted两个钩子之间调用时差值受什么影响
前端·javascript·vue.js
青苔猿猿37 分钟前
node版本.node版本、npm版本和pnpm版本对应
前端·npm·node.js·pnpm
Adorable老犀牛1 小时前
安装npm:npm未随Node.js一起安装
npm·node.js
大神的风范1 小时前
从0开始学linux韦东山教程第三章问题小结(4)
linux·服务器
恋猫de小郭2 小时前
如何查看项目是否支持最新 Android 16K Page Size 一文汇总
android·开发语言·javascript·kotlin
大蚂蚁2号2 小时前
windows文件共享另一台电脑资源管理器网络文件夹无法找到机器
运维·服务器·网络
赵大仁2 小时前
React Native 与 Expo
javascript·react native·react.js
影龙帝皖3 小时前
Linux服务之lvs集群与dr模式部署
linux·服务器·lvs
程序员与背包客_CoderZ3 小时前
Node.js异步编程——Callback回调函数实现
前端·javascript·node.js·web