12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- const express = require('express');
- const mysql = require('mysql2');
- const cors = require('cors');
- const app = express();
- const PORT = 3000;
- // CORS 设置
- app.use(cors());
- app.use(express.json());
- // MySQL 连接设置
- const db = mysql.createConnection({
- host: 'localhost',
- user: 'root', // 替换为您的MySQL用户名
- password: '123456', // 替换为您的MySQL密码
- database: 'poemLifeApp',
- ssl: false // 禁用SSL连接(如果不需要)
- });
- // 连接到数据库
- db.connect(err => {
- if (err) {
- console.error('Database connection failed: ' + err.stack);
- return;
- }
- console.log('Connected to database.');
- });
- // 获取书籍列表的 API
- app.get('/api/books', (req, res) => {
- let query = `
- SELECT
- b.id,
- b.title,
- c.name AS category,
- COUNT(p.id) AS count
- FROM
- books b
- LEFT JOIN
- categories c ON b.category_id = c.id
- LEFT JOIN
- poems p ON b.id = p.book_id
- GROUP BY
- b.id, b.title, c.name`;
- const categoryId = req.query.category_id;
- if (categoryId) {
- query += ` WHERE b.category_id = ${categoryId}`;
- }
- db.query(query, (err, results) => {
- if (err) {
- return res.status(500).json({ error: err });
- }
- res.json(results);
- });
- });
- // 获取诗词列表的 API
- app.get('/api/poems/:bookId', (req, res) => {
- const bookId = req.params.bookId;
- const query = 'SELECT * FROM poems WHERE book_id = ?';
- db.query(query, [bookId], (err, results) => {
- if (err) return res.status(500).json({ error: err });
- res.json(results);
- });
- });
- // 获取诗句内容的 API
- app.get('/api/poem-contents/:poemId', (req, res) => {
- const poemId = req.params.poemId;
- const query = 'SELECT content FROM poem_contents WHERE poem_id = ?';
- db.query(query, [poemId], (err, results) => {
- if (err) return res.status(500).json({ error: err });
- if (results.length === 0) return res.status(404).json({ message: 'Content not found' });
- res.json(results[0]);
- });
- });
- // 获取分类列表的 API
- app.get('/api/categories', (req, res) => {
- const query = 'SELECT * FROM categories';
- db.query(query, (err, results) => {
- if (err) {
- return res.status(500).json({ error: err });
- }
- res.json(results); // 返回分类数据
- });
- });
- // 启动服务器
- app.listen(PORT, () => {
- console.log(`Server is running on http://localhost:${PORT}`);
- });
|