Express 简介
什么是 Express?
Express.js 是一个基于 Node.js 的轻量级 Web 框架,适用于构建 API 和 Web 应用。
info
Express 提供了简洁的路由和中间件机制,使得构建后端服务更加灵活高效。
安装 Express
npm install express
创建一个 Express 应用
const express = require("express");
const app = express();
app.get("/", (req, res) => {
res.send("Hello, Express!");
});
app.listen(3000, () => {
console.log("Server running on http://localhost:3000");
});
运行后访问 http://localhost:3000/
即可看到 Hello, Express!
。
Express 项目结构
my_express_app/
│── app.js # Express 入口文件
│── routes/ # 路由文件
│── controllers/ # 控制器逻辑
│── models/ # 数据模型
│── middlewares/ # 中间件
│── package.json # 依赖配置文件
│── node_modules/ # 依赖库
Express 路由管理
const express = require("express");
const router = express.Router();
router.get("/hello/:name", (req, res) => {
res.send(`Hello, ${req.params.name}!`);
});
module.exports = router;
CRUD 操作示例
- JavaScript
const express = require("express");
const app = express();
app.use(express.json()); // 解析 JSON 请求体
let data = [];
// 获取数据
app.get("/items", (req, res) => {
res.json(data);
});
// 创建数据
app.post("/items", (req, res) => {
data.push(req.body);
res.status(201).json(req.body);
});
// 更新数据
app.put("/items/:index", (req, res) => {
const index = parseInt(req.params.index);
if (index >= 0 && index < data.length) {
data[index] = req.body;
res.json(data[index]);
} else {
res.status(404).send("Not Found");
}
});
// 删除数据
app.delete("/items/:index", (req, res) => {
const index = parseInt(req.params.index);
if (index >= 0 && index < data.length) {
res.json(data.splice(index, 1));
} else {
res.status(404).send("Not Found");
}
});
app.listen(3000, () => console.log("Server running on http://localhost:3000"));
使用 Express 和 MongoDB
npm install mongoose
const mongoose = require("mongoose");
const express = require("express");
const app = express();
mongoose.connect("mongodb://localhost:27017/mydb", {
useNewUrlParser: true,
useUnifiedTopology: true,
});
const UserSchema = new mongoose.Schema({
name: String,
email: String,
});
const User = mongoose.model("User", UserSchema);
app.use(express.json());
app.post("/users", async (req, res) => {
const user = new User(req.body);
await user.save();
res.status(201).json(user);
});
app.listen(3000, () => console.log("Server running on http://localhost:3000"));
结论
Express.js 作为一个轻量级的 Web 框架,适用于 API 服务器、微服务架构等场景。