85 lines
2.2 KiB
JavaScript
85 lines
2.2 KiB
JavaScript
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 = ?;
|
|
`;
|
|
// 让 MySQL 执行一条 SQL 语句
|
|
// db.query(
|
|
// sql, // ① 要执行的 SQL
|
|
// [username, password], // ② 给 SQL 中 ? 提供的参数
|
|
// (error, results) => { // ③ 查询完成后的回调函数
|
|
// ...
|
|
// }
|
|
// );
|
|
// 执行 SQL 查询
|
|
db.query(sql, [username, password], (error, results) => {
|
|
if (error) {
|
|
console.error("数据库查询失败:", error);
|
|
|
|
return res.status(500).json({
|
|
code: 500,
|
|
message: "登录失败",
|
|
});
|
|
}
|
|
if (results.length > 0) {
|
|
// 生成 JWT token
|
|
const token = jwt.createToken({
|
|
username: results[0].username
|
|
});
|
|
res.json({
|
|
code: 200,
|
|
message: "登录成功",
|
|
data: {
|
|
token: "Bearer " + token,
|
|
username: results[0].username,
|
|
},
|
|
});
|
|
} else {
|
|
res.json({
|
|
code: 401,
|
|
message: "用户名或密码错误",
|
|
data: null,
|
|
});
|
|
}
|
|
});
|
|
});
|
|
|
|
// 注册注册接口
|
|
router.post("/register", (req, res) => {
|
|
const { username, password } = req.body;
|
|
|
|
const sql = `
|
|
INSERT INTO users (username, password)
|
|
VALUES (?, ?)
|
|
`;
|
|
|
|
db.query(sql, [username, password], (error, result) => {
|
|
if (error) {
|
|
console.error(error);
|
|
|
|
return res.status(500).json({
|
|
code: 500,
|
|
message: "注册失败",
|
|
data: null
|
|
});
|
|
}
|
|
|
|
res.json({
|
|
code: 200,
|
|
message: "注册成功",
|
|
data: null
|
|
});
|
|
});
|
|
});
|
|
|
|
module.exports = router; |