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