1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118
| const express = require('express') //載入newsModel const News = require('../models/newModel') //載入時間套件 const moment = require('moment'); moment().format();
//Create router.post('/new', async(req, res) => { try { /* #swagger.tags = ['News'] #swagger.description = '' */
/* #swagger.parameters['obj'] = { in: 'body', description: '', required: true, schema: { $ref: "#/definitions/AddNews" } } */
/* #swagger.security = [{ "apiKeyAuth": [] }] */ const data = new News({ subject:req.body.subject, image:req.body.image, content:req.body.content, createdTime: moment(Date.now()).format('YYYY-MM-DDTHH:mm:ss.SSS'), updatedTime: moment(Date.now()).format('YYYY-MM-DDTHH:mm:ss.SSS'), }) const news = await data.save(); res.status(200).json(news); } catch (error) { const expr = error.message; console.log('News error.message',expr) switch (expr) { case 'News validation failed: subject: Please add a valid subject 2~30': res.status(400).json({ message: 'subject 驗證失敗:subject必須2~30字符' }) break; case 'News validation failed: subject: Please add a valid name 2~30, content: Please add a valid content 4~500': res.status(400).json({message: '`subject`,`content`驗證失敗' }) break; case 'News validation failed: content: Please add a valid content 4~500': res.status(400).json({message: 'content驗證失敗:subject必須4~500字符' }) break; default: console.log('!!'); } // res.status(500).json({message: error.message}) } }) router.get('/news', async(req, res) => { try { const news = await News.find({}); res.status(200).json(news); } catch (error) { res.status(500).json({message: error.message}) } }) router.get('/news/:id', async(req, res) =>{ try { const {id} = req.params; const news = await News.findById(id); res.status(200).json(news); } catch (error) { res.status(500).json({message: error.message}) } }) router.put('/news/:id', async(req, res) => { try { /* #swagger.tags = ['News'] #swagger.description = '' */
/* #swagger.parameters['obj'] = { in: 'body', description: '', required: true, schema: { $ref: "#/definitions/News" } } */
/* #swagger.security = [{ "apiKeyAuth": [] }] */ const { id } = req.params; const data = { subject:req.body.subject, image:req.body.image, content:req.body.content, updatedTime: moment(Date.now()).format('YYYY-MM-DDTHH:mm:ss.SSS'), } const news = await News.findByIdAndUpdate(id, data); // we cannot find any news in database if(!news){ return res.status(404).json({message: `cannot find any news with ID ${id}`}) } const updatedNews = await New.findById(id); res.status(200).json(updatedNews); } catch (error) { res.status(500).json({message: error.message}) } }) router.delete('/news/:id', async(req, res) =>{ try { const {id} = req.params; const test = await News.findByIdAndDelete(id); if(!test){ return res.status(404).json({message: `cannot find any news with ID ${id}`}) } res.status(200).json(test); } catch (error) { res.status(500).json({message: error.message}) } })
|