dbServe.js 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. /*
  2. * @Author: 危齐晟 1913361097@qq.com
  3. * @Date: 2024-12-17 10:31:46
  4. * @LastEditors: 危齐晟 1913361097@qq.com
  5. * @LastEditTime: 2024-12-17 15:24:58
  6. * @FilePath: \202226701045\poem-life-serve\db\dbServe.js
  7. * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
  8. */
  9. // server.js
  10. const express = require('express');
  11. const mysql = require('mysql2');
  12. const cors = require('cors');
  13. const app = express();
  14. const PORT = 3000;
  15. // CORS 设置
  16. app.use(cors());
  17. app.use(express.json());
  18. // MySQL 连接设置
  19. const db = mysql.createConnection({
  20. host: 'localhost',
  21. user: 'root', // 替换为您的MySQL用户名
  22. password: '123456', // 替换为您的MySQL密码
  23. database: 'poemLifeApp',
  24. ssl: false // 禁用SSL连接(如果不需要的话)
  25. });
  26. // 连接到数据库
  27. db.connect(err => {
  28. if (err) {
  29. console.error('Database connection failed: ' + err.stack);
  30. return;
  31. }
  32. console.log('Connected to database.');
  33. });
  34. // 获取书籍列表的 API
  35. app.get('/api/books', (req, res) => {
  36. db.query('SELECT * FROM books', (err, results) => {
  37. if (err) {
  38. return res.status(500).json({ error: err });
  39. }
  40. res.json(results);
  41. });
  42. });
  43. app.get('/api/poems/:bookId', (req, res) => {
  44. const bookId = req.params.bookId;
  45. const query = 'SELECT * FROM poems WHERE book_id = ?';
  46. db.query(query, [bookId], (err, results) => {
  47. if (err) return res.status(500).json({ error: err });
  48. res.json(results);
  49. });
  50. });
  51. app.get('/api/poem-contents/:poemId', (req, res) => {
  52. const poemId = req.params.poemId;
  53. const query = 'SELECT content FROM poem_contents WHERE poem_id = ?';
  54. db.query(query, [poemId], (err, results) => {
  55. if (err) return res.status(500).json({ error: err });
  56. if (results.length === 0) return res.status(404).json({ message: 'Content not found' });
  57. res.json(results[0]);
  58. });
  59. });
  60. app.get('/api/categories', (req, res) => {
  61. const categories = ['书籍', '选集', '主题', '写景', '节日', '节气', '词牌', '时间', '时令', '花卉', '课本', '地理', '城市', '名山', '用典'];
  62. res.json(categories);
  63. });
  64. app.get('/api/books', (req, res) => {
  65. const books = [
  66. { id: 1, title: '唐诗全集', category: '书籍', count: 200 },
  67. { id: 2, title: '诗经全集', category: '选集', count: 305 },
  68. { id: 3, title: '楚辞全集', category: '选集', count: 17 },
  69. { id: 4, title: '道德经', category: '选集', count: 81 },
  70. { id: 5, title: '时间简史', category: '主题', count: 150 },
  71. // 其他书籍...
  72. ];
  73. res.json(books);
  74. });
  75. // 启动服务器
  76. app.listen(PORT, () => {
  77. console.log(`Server is running on http://localhost:${PORT}`);
  78. });