添加注释

This commit is contained in:
2026-09-12 11:36:21 +08:00
parent 52ceba6e6d
commit 903e384f4a
5 changed files with 32 additions and 16 deletions
+8 -3
View File
@@ -1,20 +1,25 @@
// .env 中的配置写入 Node.js 的全局环境变量对象,下面的文件都可以直接使用
require('dotenv').config(); require('dotenv').config();
// 搭建http服务器
const express = require("express"); const express = require("express");
const app = express(); const app = express();
// 解析 JSON 请求体 // 服务器解析 JSON 请求体
app.use(express.json()); app.use(express.json());
// 路由 // 接入路由
const loginRouter = require("./routes/login"); const loginRouter = require("./routes/login");
const userRouter = require("./routes/user"); const userRouter = require("./routes/user");
// 注册路由 // 所有接口,都统一加上 /api 前缀
app.use("/api", loginRouter); app.use("/api", loginRouter);
app.use("/api", userRouter); app.use("/api", userRouter);
// 启动服务器,监听端口
app.listen(3000, () => { app.listen(3000, () => {
console.log("服务器启动成功:http://localhost:3000"); console.log("服务器启动成功:http://localhost:3000");
}); });
// index.js 就是 Node 后端的“总入口”:加载配置 → 创建 Express → 解析请求 → 加载路由 → 注册接口 → 启动 3000 端口服务器
+3 -2
View File
@@ -1,3 +1,4 @@
// 校验token是否有效的中间件
const { const {
verifyToken verifyToken
} = require("../utils/jwt"); } = require("../utils/jwt");
@@ -13,9 +14,9 @@ function authMiddleware(req,res,next){
const token = header.split(" ")[1]; const token = header.split(" ")[1];
try{ try{
const user = verifyToken(token); const user = verifyToken(token);
// 保存用户信息 // 把 JWT 验证出来的用户信息,挂到当前请求对象 req 上,以后的路由就可以req.user.userId来获取用户信息
req.user = user; req.user = user;
// 继续执行接口 // 继续执行
next(); next();
}catch(err){ }catch(err){
res.status(401).json({ res.status(401).json({
+14 -2
View File
@@ -1,9 +1,11 @@
const express = require("express"); const express = require("express");
// 创建路由对象,用于拆分接口
const router = express.Router(); const router = express.Router();
// 引入数据库连接对象
const db = require("../db/mysql"); const db = require("../db/mysql");
const jwt = require("../utils/jwt"); const jwt = require("../utils/jwt");
// 注册登录接口
router.post("/login", (req, res) => { router.post("/login", (req, res) => {
const { username, password } = req.body; const { username, password } = req.body;
@@ -11,6 +13,15 @@ router.post("/login", (req, res) => {
SELECT * FROM chat_mysql.users SELECT * FROM chat_mysql.users
WHERE username = ? AND password = ?; WHERE username = ? AND password = ?;
`; `;
// 让 MySQL 执行一条 SQL 语句
// db.query(
// sql, // ① 要执行的 SQL
// [username, password], // ② 给 SQL 中 ? 提供的参数
// (error, results) => { // ③ 查询完成后的回调函数
// ...
// }
// );
// 执行 SQL 查询
db.query(sql, [username, password], (error, results) => { db.query(sql, [username, password], (error, results) => {
if (error) { if (error) {
console.error("数据库查询失败:", error); console.error("数据库查询失败:", error);
@@ -30,7 +41,7 @@ router.post("/login", (req, res) => {
code: 200, code: 200,
message: "登录成功", message: "登录成功",
data: { data: {
token: token, token: "Bearer " + token,
username: results[0].username, username: results[0].username,
}, },
}); });
@@ -44,6 +55,7 @@ router.post("/login", (req, res) => {
}); });
}); });
// 注册注册接口
router.post("/register", (req, res) => { router.post("/register", (req, res) => {
const { username, password } = req.body; const { username, password } = req.body;
-2
View File
@@ -1,7 +1,5 @@
const express = require("express"); const express = require("express");
const router = express.Router(); const router = express.Router();
const authMiddleware = require("../middleware/authMiddleware"); const authMiddleware = require("../middleware/authMiddleware");
+2 -2
View File
@@ -1,7 +1,7 @@
const jwt = require("jsonwebtoken"); const jwt = require("jsonwebtoken");
const secret = process.env.JWT_SECRET; const secret = process.env.JWT_SECRET;
// 创建token // 创建token,把 payload + 签名密钥 secret + 过期时间,生成一个 JWT Token 字符串
function createToken(payload){ function createToken(payload){
return jwt.sign( return jwt.sign(
payload, payload,
@@ -12,7 +12,7 @@ function createToken(payload){
); );
} }
// 验证token // 验证token,正确的token会返回payload,错误的token会抛出异常
function verifyToken(token){ function verifyToken(token){
return jwt.verify( return jwt.verify(
token, token,