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