Showing
2 changed files
with
82 additions
and
13 deletions
| 1 | { | 1 | { |
| 2 | "scripts": { | 2 | "scripts": { |
| 3 | "server": "cd server && nodemon server", | 3 | "server": "cd server && nodemon server", |
| 4 | - "client": "cd client && npm start --port", | 4 | + "client": "cd client && export PORT=8080 && set PORT=8080 && npm start --port", |
| 5 | "start": "concurrently --kill-others-on-fail \"npm run server\" \"npm run client\"" | 5 | "start": "concurrently --kill-others-on-fail \"npm run server\" \"npm run client\"" |
| 6 | }, | 6 | }, |
| 7 | "dependencies": { | 7 | "dependencies": { | ... | ... |
| ... | @@ -29,7 +29,7 @@ const postModel = mongoose.model('post', post); | ... | @@ -29,7 +29,7 @@ const postModel = mongoose.model('post', post); |
| 29 | 29 | ||
| 30 | function getCurrentDate(originDate) { | 30 | function getCurrentDate(originDate) { |
| 31 | var date; | 31 | var date; |
| 32 | - if(originDate == null) date = new Date(); | 32 | + if (originDate == null) date = new Date(); |
| 33 | else date = new Date(originDate); | 33 | else date = new Date(originDate); |
| 34 | var year = date.getFullYear().toString(); | 34 | var year = date.getFullYear().toString(); |
| 35 | 35 | ||
| ... | @@ -39,27 +39,45 @@ function getCurrentDate(originDate) { | ... | @@ -39,27 +39,45 @@ function getCurrentDate(originDate) { |
| 39 | var day = date.getDate(); | 39 | var day = date.getDate(); |
| 40 | day = day < 10 ? '0' + day.toString() : day.toString(); | 40 | day = day < 10 ? '0' + day.toString() : day.toString(); |
| 41 | 41 | ||
| 42 | - return year + '-'+ month + '-'+ day ; | 42 | + return year + '-' + month + '-' + day; |
| 43 | } | 43 | } |
| 44 | 44 | ||
| 45 | -router.get('/api/getList', async(req, res) => { | 45 | +function arrayEquals(a, b) { |
| 46 | + return Array.isArray(a) && | ||
| 47 | + Array.isArray(b) && | ||
| 48 | + a.length === b.length && | ||
| 49 | + a.every((val, index) => val === b[index]); | ||
| 50 | +} | ||
| 51 | + | ||
| 52 | +router.get('/api/getList', async (req, res) => { // 오늘 게시물들의 아이디 표시 | ||
| 53 | + try { | ||
| 46 | const today = getCurrentDate(); | 54 | const today = getCurrentDate(); |
| 47 | var testDayPostList = await dayPostListModel.findOne({ date: today }); | 55 | var testDayPostList = await dayPostListModel.findOne({ date: today }); |
| 48 | if (testDayPostList == null) testDayPostList = new dayPostListModel({ date: today, idArray: [] }); | 56 | if (testDayPostList == null) testDayPostList = new dayPostListModel({ date: today, idArray: [] }); |
| 49 | res.send(testDayPostList.idArray); | 57 | res.send(testDayPostList.idArray); |
| 58 | + } | ||
| 59 | + catch (err) { | ||
| 60 | + res.send(err.message); | ||
| 61 | + } | ||
| 50 | }); | 62 | }); |
| 51 | 63 | ||
| 52 | -router.get('/api/getList/:date', async(req, res) => { | 64 | +router.get('/api/getList/:date', async (req, res) => { // 특정 날자의 게시물들의 아이디 표시 |
| 65 | + try { | ||
| 53 | const today = getCurrentDate(req.params.date); | 66 | const today = getCurrentDate(req.params.date); |
| 54 | var testDayPostList = await dayPostListModel.findOne({ date: today }); | 67 | var testDayPostList = await dayPostListModel.findOne({ date: today }); |
| 55 | if (testDayPostList == null) testDayPostList = new dayPostListModel({ date: today, idArray: [] }); | 68 | if (testDayPostList == null) testDayPostList = new dayPostListModel({ date: today, idArray: [] }); |
| 56 | res.send(testDayPostList.idArray); | 69 | res.send(testDayPostList.idArray); |
| 70 | + } | ||
| 71 | + catch (err) { | ||
| 72 | + res.send(err.message); | ||
| 73 | + } | ||
| 57 | }); | 74 | }); |
| 58 | 75 | ||
| 59 | -router.get('/api/get', async(req, res) => { | 76 | +router.get('/api/get', async (req, res) => { // 특정 id(여러개)의 게시물 내용 요약 불러오기 |
| 77 | + try { | ||
| 60 | const idArray = req.body.idArray; | 78 | const idArray = req.body.idArray; |
| 61 | var resultArray = []; | 79 | var resultArray = []; |
| 62 | - for (const id of idArray){ | 80 | + for (const id of idArray) { |
| 63 | const onePost = await postModel.findById(id); | 81 | const onePost = await postModel.findById(id); |
| 64 | var tempJSON = {}; | 82 | var tempJSON = {}; |
| 65 | tempJSON.id = onePost.id; | 83 | tempJSON.id = onePost.id; |
| ... | @@ -67,24 +85,39 @@ router.get('/api/get', async(req, res) => { | ... | @@ -67,24 +85,39 @@ router.get('/api/get', async(req, res) => { |
| 67 | tempJSON.content = onePost.content; | 85 | tempJSON.content = onePost.content; |
| 68 | tempJSON.content = tempJSON.content.replace(/(?:\r\n|\r|\n)/g, ''); | 86 | tempJSON.content = tempJSON.content.replace(/(?:\r\n|\r|\n)/g, ''); |
| 69 | const sliceLength = 10; | 87 | const sliceLength = 10; |
| 70 | - if(tempJSON.content.length > sliceLength) tempJSON.content = tempJSON.content.slice(0,sliceLength) + "..."; | 88 | + if (tempJSON.content.length > sliceLength) tempJSON.content = tempJSON.content.slice(0, sliceLength) + "..."; |
| 71 | resultArray.push(tempJSON); | 89 | resultArray.push(tempJSON); |
| 72 | } | 90 | } |
| 73 | res.send(resultArray); | 91 | res.send(resultArray); |
| 92 | + } | ||
| 93 | + catch (err) { | ||
| 94 | + res.send(err.message); | ||
| 95 | + } | ||
| 74 | }); | 96 | }); |
| 75 | 97 | ||
| 76 | -router.get('/api/get/:id', async(req, res) => { | 98 | +router.get('/api/get/:id', async (req, res) => { // 특정 id의 게시물 불러오기 |
| 99 | + try { | ||
| 77 | const currentPost = await postModel.findById(req.params.id); | 100 | const currentPost = await postModel.findById(req.params.id); |
| 78 | res.send({ title: currentPost.title, content: currentPost.content }); | 101 | res.send({ title: currentPost.title, content: currentPost.content }); |
| 102 | + } | ||
| 103 | + catch (err) { | ||
| 104 | + res.send(err.message); | ||
| 105 | + } | ||
| 79 | }); | 106 | }); |
| 80 | 107 | ||
| 81 | -router.post('/api/isPassEqual', async(req, res) => { | 108 | +router.post('/api/isPassEqual', async (req, res) => { // 암호가 같으면 success, 아니면 failed |
| 109 | + try { | ||
| 82 | const currentPost = await postModel.findById(req.body.id); | 110 | const currentPost = await postModel.findById(req.body.id); |
| 83 | if (currentPost.password == req.body.password) res.send("success"); | 111 | if (currentPost.password == req.body.password) res.send("success"); |
| 84 | else res.send("failed"); | 112 | else res.send("failed"); |
| 113 | + } | ||
| 114 | + catch (err) { | ||
| 115 | + res.send("failed"); | ||
| 116 | + } | ||
| 85 | }); | 117 | }); |
| 86 | 118 | ||
| 87 | -router.post('/api/postSave', async (req, res) => { | 119 | +router.post('/api/postSave', async (req, res) => { // 오늘 게시물 작성 |
| 120 | + try { | ||
| 88 | var isFirst = false; | 121 | var isFirst = false; |
| 89 | const today = getCurrentDate(); | 122 | const today = getCurrentDate(); |
| 90 | 123 | ||
| ... | @@ -101,10 +134,46 @@ router.post('/api/postSave', async (req, res) => { | ... | @@ -101,10 +134,46 @@ router.post('/api/postSave', async (req, res) => { |
| 101 | if (isFirst) await testDayPostList.save(); | 134 | if (isFirst) await testDayPostList.save(); |
| 102 | else await dayPostListModel.updateOne({ date: today }, { idArray: postListArr }); | 135 | else await dayPostListModel.updateOne({ date: today }, { idArray: postListArr }); |
| 103 | 136 | ||
| 104 | - res.send(newPostData); | 137 | + res.send("success"); |
| 138 | + } | ||
| 139 | + catch (err) { | ||
| 140 | + res.send(err.message); | ||
| 141 | + } | ||
| 142 | +}); | ||
| 143 | + | ||
| 144 | +router.put('/api/edit/:id', async (req, res) => { // 게시물 수정 | ||
| 145 | + try { | ||
| 146 | + const id = req.params.id; | ||
| 147 | + const title = req.body.title; | ||
| 148 | + const content = req.body.content; | ||
| 149 | + await postModel.findByIdAndUpdate(id, { title: title, content: content }); | ||
| 150 | + res.send("success"); | ||
| 151 | + } | ||
| 152 | + catch (err) { | ||
| 153 | + res.send(err.message); | ||
| 154 | + } | ||
| 155 | +}); | ||
| 156 | + | ||
| 157 | +router.delete('/api/delete/:id', async (req, res) => { // 게시물 삭제 | ||
| 158 | + try { | ||
| 159 | + const id = req.params.id; | ||
| 160 | + const list = await dayPostListModel.find(); | ||
| 161 | + for (const dayList of list) { | ||
| 162 | + var newArray = dayList.idArray.filter((data)=>{return data != id;}) | ||
| 163 | + if(!arrayEquals(dayList.idArray, newArray)){ | ||
| 164 | + await dayPostListModel.findByIdAndUpdate(dayList._id.toString(), {idArray: newArray}); | ||
| 165 | + } | ||
| 166 | + } | ||
| 167 | + await postModel.findByIdAndDelete(id); | ||
| 168 | + res.send("success"); | ||
| 169 | + } | ||
| 170 | + catch (err) { | ||
| 171 | + res.send(err.message); | ||
| 172 | + } | ||
| 105 | }); | 173 | }); |
| 106 | 174 | ||
| 107 | -// 게시물 저장에 성공 실패 메시지만 표시, 게시물 수정, 삭제 추가예정 --------------------------------------------------------------------------------------------------------------------------------------- | 175 | +// 대기시간 관련 디비 수정 부분 추가 ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 176 | +// 학식 일주일치 불러오는 부분 추가 ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ||
| 108 | 177 | ||
| 109 | // router.get('/api/testSave', async (req, res) => { | 178 | // router.get('/api/testSave', async (req, res) => { |
| 110 | // var isFirst = false; | 179 | // var isFirst = false; | ... | ... |
-
Please register or login to post a comment