Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- react#로스트아크#mbti#테스트
- e.target
- __dirname
- Promise #async #await #try #catch
- updateone
- ejs 문법
- CSS
- serializeUser
- typescript #react #jsx #component #usestate
- 정적 페이지
- typescript #unknown
- github#로컬저장소#원격저장소
- git vscode
- git#github#init#add#commit#restore#log#staging area#repository#git사용법
- connect-mongo
- deserializeUser
- expess
- updatemany
- GitHub Actions
- sendFile
- insertone
- TypeScript #문법
- Passport
- typescript #class #extends #public #private #protected #static
- typescript #import #export #*
- github#githubpages#빈화면#basename
- typescript #constructor #class #public #private
- github#githubpages#gh-pages#deploy
- typescript #class #constructor #public #private #static #extends #protected #typeof #in #instanceof #never
- mongodb 입출력
Archives
- Today
- Total
VaIice의 이야기
[Node.js] 게시글 수정 만들기 본문
1. 수정 페이지 만들기
// server.ejs
app.get('/detail/modify/:id', async (request, response) => {
try {
let result = await db.collection('main').findOne({ _id: new ObjectId(request.params.id) });
response.render('modify.ejs', { post: result })
}
catch {
response.redirect('/')
}
})
app.post('/modify', async (request, response) => {
try {
await db.collection('main').updateOne({ _id: new ObjectId(request.body.id) }, { $set: { title: request.body.title, content: request.body.content } })
console.log(request.body.id)
response.render('modify.ejs', { post: result })
response.redirect('/')
}
catch {
response.redirect('/')
}
})
updateOne({찾을 내용}, {$set: 바꿀 내용}): 업데이트
$set: 덮어쓰기
// modify.ejs
<div class="white-bg">
<div class="white-bg">
<div class="list-box">
<form class="form-box" action="/modify" method="POST">
<h4>수정하기</h4>
<input type="text" name="id" value="<%=post._id%>">
<input type="text" name="title" value="<%= post.title%>">
<input type="text" name="content" value="<%= post.content%>">
<button type="submit">전송</button>
</form>
</div>
</div>
2. form에서의 PUT과 DELETE
npm install method-override
// server.js
const methodOverride = require('method-override')
app.use(methodOverride('_method'))
// mofify.ejs
<form class="form-box" action="/modify?_method=PUT" method="POST">
?_method=PUT 추가
3. 연산자
$inc: 덧셈, 뺄셈
$mul: 곱셈
$unset: 삭제
4. 여러 개 수정
await db.collection('main').updateMany({ _id: 1 }, { $set: { title: 1 } })
updateMany({찾을 내용}, {수정 내용})
5. 필터링
await db.collection('main').updateMany({ _id: {$gt: 10} }, { $set: { title: 'hi' } })
$gt: greater than, 10 초과
$gte: greater than / equal, 10이상
$lt: less than, 10 미만
$lte: less than / equal, 10이하
$ne: not equal, 10이 아닌
요약
method-override로 form에서 PUT / DELETE 가능
document 하나 수정: updateOne()
document 여러 개 수정: updateMany()
$set, $inc, ...으로 수정 방법 결정 가능
$gt, $le, ...으로 필터링 결정 가능
'[Node.js]' 카테고리의 다른 글
[Node.js] 페이지 기능 만들기 (0) | 2024.07.16 |
---|---|
[Node.js] 서버로 데이터 보내기, 게시글 삭제 만들기 (2) | 2024.07.16 |
[Node.js] 상세 페이지 만들기 (0) | 2024.07.14 |
[Node.js] 글쓰기 만들기 (0) | 2024.07.11 |
[Node.js] API method, URL (0) | 2024.07.10 |