150 lines
3.9 KiB
JavaScript
150 lines
3.9 KiB
JavaScript
const express = require("express");
|
|
const router = express.Router();
|
|
const db = require("../db/mysql");
|
|
const authMiddleware = require("../middleware/authMiddleware");
|
|
|
|
|
|
// 获取用户信息
|
|
router.get(
|
|
"/userInfo",
|
|
authMiddleware,
|
|
(req, res) => {
|
|
res.json({
|
|
code: 200,
|
|
data: {
|
|
username: req.user.username
|
|
}
|
|
});
|
|
|
|
}
|
|
);
|
|
|
|
// 获取联系人列表
|
|
router.get(
|
|
"/contactsInfo",
|
|
authMiddleware,
|
|
(req, res) => {
|
|
const sql = `
|
|
SELECT
|
|
u.username
|
|
FROM chat_mysql.contacts c
|
|
JOIN chat_mysql.users u
|
|
ON c.contact_name = u.username
|
|
WHERE c.user_name = ?;
|
|
`;
|
|
db.query(sql, [req.user.username], (error, results) => {
|
|
if (error) {
|
|
console.error("数据库查询失败:", error);
|
|
|
|
return res.status(500).json({
|
|
code: 500,
|
|
message: "查询失败",
|
|
});
|
|
}
|
|
if (results.length > 0) {
|
|
res.json({
|
|
code: 200,
|
|
message: "查询成功",
|
|
data: {
|
|
contacts: results.map(contact => ({
|
|
contactName: contact.username
|
|
}))
|
|
},
|
|
});
|
|
} else {
|
|
res.json({
|
|
code: 401,
|
|
message: "未找到联系人",
|
|
data: {
|
|
contacts: []
|
|
}
|
|
});
|
|
}
|
|
});
|
|
|
|
}
|
|
);
|
|
|
|
// 获取所有聊天消息
|
|
router.get(
|
|
"/messagesInfo",
|
|
authMiddleware,
|
|
(req, res) => {
|
|
const currentUserName = req.user.username;
|
|
const sql = `
|
|
SELECT
|
|
id,
|
|
sender_name,
|
|
receiver_name,
|
|
content,
|
|
created_at
|
|
FROM chat_mysql.messages
|
|
WHERE sender_name = ? OR receiver_name = ?
|
|
ORDER BY created_at ASC;
|
|
`;
|
|
db.query(sql, [currentUserName, currentUserName], (error, results) => {
|
|
if (error) {
|
|
console.error("数据库查询失败:", error);
|
|
|
|
return res.status(500).json({
|
|
code: 500,
|
|
message: "查询失败",
|
|
});
|
|
}
|
|
if (results.length > 0) {
|
|
res.json({
|
|
code: 200,
|
|
message: "查询成功",
|
|
data: {
|
|
messages: results.map(message => ({
|
|
messageId: message.id,
|
|
senderName: message.sender_name,
|
|
receiverName: message.receiver_name,
|
|
content: message.content,
|
|
createdAt: message.created_at
|
|
}))
|
|
},
|
|
});
|
|
} else {
|
|
res.json({
|
|
code: 401,
|
|
message: "未找到联系人消息",
|
|
data: {
|
|
messages: []
|
|
}
|
|
});
|
|
}
|
|
});
|
|
|
|
}
|
|
);
|
|
|
|
// 写入聊天消息
|
|
router.post("/sendMessage", (req, res) => {
|
|
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: "注册失败",
|
|
});
|
|
}
|
|
|
|
res.json({
|
|
code: 200,
|
|
message: "注册成功",
|
|
data: {
|
|
id: result.insertId,
|
|
},
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
module.exports = router; |