wangsisi 1 день назад
Родитель
Сommit
8a1a02f94a
2 измененных файлов с 138 добавлено и 30 удалено
  1. 65 14
      routes/category.js
  2. 73 16
      routes/news.js

+ 65 - 14
routes/category.js

@@ -16,9 +16,17 @@ router.get('/tree', async (req, res) => {
         [{ model: Category, as: 'children' }, 'order', 'ASC']
       ]
     });
-    res.json(categories);
+    res.status(200).json({
+      status: 'success',
+      message: '获取分类树成功',
+      data: categories
+    });
   } catch (error) {
-    res.status(500).json({ error: error.message });
+    res.status(500).json({ 
+      status: 'error',
+      message: '获取分类树失败',
+      error: error.message 
+    });
   }
 });
 
@@ -32,21 +40,41 @@ router.get('/:id', async (req, res) => {
       }]
     });
     if (!category) {
-      return res.status(404).json({ error: '品类不存在' });
+      return res.status(404).json({ 
+        status: 'error',
+        message: '品类不存在',
+        error: '品类不存在' 
+      });
     }
-    res.json(category);
+    res.status(200).json({
+      status: 'success',
+      message: '获取品类详情成功',
+      data: category
+    });
   } catch (error) {
-    res.status(500).json({ error: error.message });
+    res.status(500).json({ 
+      status: 'error',
+      message: '获取品类详情失败',
+      error: error.message 
+    });
   }
 });
 
 // 添加新品类
-router.post('/', async (req, res) => {
+router.post('/add', async (req, res) => {
   try {
     const category = await Category.create(req.body);
-    res.status(201).json(category);
+    res.status(201).json({
+      status: 'success',
+      message: '品类创建成功',
+      data: category
+    });
   } catch (error) {
-    res.status(500).json({ error: error.message });
+    res.status(500).json({ 
+      status: 'error',
+      message: '品类创建失败',
+      error: error.message 
+    });
   }
 });
 
@@ -55,12 +83,24 @@ router.put('/:id', async (req, res) => {
   try {
     const category = await Category.findByPk(req.params.id);
     if (!category) {
-      return res.status(404).json({ error: '品类不存在' });
+      return res.status(404).json({ 
+        status: 'error',
+        message: '品类不存在',
+        error: '品类不存在' 
+      });
     }
     await category.update(req.body);
-    res.json(category);
+    res.status(200).json({
+      status: 'success',
+      message: '品类更新成功',
+      data: category
+    });
   } catch (error) {
-    res.status(500).json({ error: error.message });
+    res.status(500).json({ 
+      status: 'error',
+      message: '品类更新失败',
+      error: error.message 
+    });
   }
 });
 
@@ -69,12 +109,23 @@ router.delete('/:id', async (req, res) => {
   try {
     const category = await Category.findByPk(req.params.id);
     if (!category) {
-      return res.status(404).json({ error: '品类不存在' });
+      return res.status(404).json({ 
+        status: 'error',
+        message: '品类不存在',
+        error: '品类不存在' 
+      });
     }
     await category.destroy();
-    res.status(204).send();
+    res.status(200).json({ 
+      status: 'success',
+      message: '品类删除成功' 
+    });
   } catch (error) {
-    res.status(500).json({ error: error.message });
+    res.status(500).json({ 
+      status: 'error',
+      message: '品类删除失败',
+      error: error.message 
+    });
   }
 });
 

+ 73 - 16
routes/news.js

@@ -26,7 +26,9 @@ router.get('/', async (req, res) => {
       offset: parseInt(offset)
     });
     
-    res.json({
+    res.status(200).json({
+      status: 'success',
+      message: '获取新闻列表成功',
       data: news.rows,
       total: news.count,
       page: parseInt(page),
@@ -34,7 +36,11 @@ router.get('/', async (req, res) => {
       totalPages: Math.ceil(news.count / limit)
     });
   } catch (error) {
-    res.status(500).json({ error: error.message });
+    res.status(500).json({ 
+      status: 'error',
+      message: '获取新闻列表失败',
+      error: error.message 
+    });
   }
 });
 
@@ -43,29 +49,49 @@ router.get('/:id', async (req, res) => {
   try {
     const news = await News.findByPk(req.params.id);
     if (!news) {
-      return res.status(404).json({ error: '新闻不存在' });
+      return res.status(404).json({ 
+        status: 'error',
+        message: '新闻不存在',
+        error: '新闻不存在' 
+      });
     }
     
     // 增加浏览次数
     await news.increment('viewCount');
     
-    res.json(news);
+    res.status(200).json({
+      status: 'success',
+      message: '获取新闻详情成功',
+      data: news
+    });
   } catch (error) {
-    res.status(500).json({ error: error.message });
+    res.status(500).json({ 
+      status: 'error',
+      message: '获取新闻详情失败',
+      error: error.message 
+    });
   }
 });
 
 // 添加新新闻
-router.post('/', async (req, res) => {
+router.post('/add', async (req, res) => {
   try {
     const newsData = {
       ...req.body,
       publishedAt: req.body.publishedAt || new Date()
     };
     const news = await News.create(newsData);
-    res.status(201).json(news);
+    res.status(201).json({
+      status: 'success',
+      message: '新闻创建成功',
+      data: news
+    });
   } catch (error) {
-    res.status(500).json({ error: error.message });
+    res.status(500).json({ 
+      status: 'error',
+      message: '新闻创建失败',
+      error: error.message 
+    });
   }
 });
 
@@ -74,12 +100,24 @@ router.put('/:id', async (req, res) => {
   try {
     const news = await News.findByPk(req.params.id);
     if (!news) {
-      return res.status(404).json({ error: '新闻不存在' });
+      return res.status(404).json({ 
+        status: 'error',
+        message: '新闻不存在',
+        error: '新闻不存在' 
+      });
     }
     await news.update(req.body);
-    res.json(news);
+    res.status(200).json({
+      status: 'success',
+      message: '新闻更新成功',
+      data: news
+    });
   } catch (error) {
-    res.status(500).json({ error: error.message });
+    res.status(500).json({ 
+      status: 'error',
+      message: '新闻更新失败',
+      error: error.message 
+    });
   }
 });
 
@@ -88,12 +126,23 @@ router.delete('/:id', async (req, res) => {
   try {
     const news = await News.findByPk(req.params.id);
     if (!news) {
-      return res.status(404).json({ error: '新闻不存在' });
+      return res.status(404).json({ 
+        status: 'error',
+        message: '新闻不存在',
+        error: '新闻不存在' 
+      });
     }
     await news.destroy();
-    res.status(204).send();
+    res.status(200).json({ 
+      status: 'success',
+      message: '新闻删除成功' 
+    });
   } catch (error) {
-    res.status(500).json({ error: error.message });
+    res.status(500).json({ 
+      status: 'error',
+      message: '新闻删除失败',
+      error: error.message 
+    });
   }
 });
 
@@ -119,9 +168,17 @@ router.get('/categories/list', async (req, res) => {
         name: category
       }));
     
-    res.json(categoryList);
+    res.status(200).json({
+      status: 'success',
+      message: '获取分类列表成功',
+      data: categoryList
+    });
   } catch (error) {
-    res.status(500).json({ error: error.message });
+    res.status(500).json({ 
+      status: 'error',
+      message: '获取分类列表失败',
+      error: error.message 
+    });
   }
 });