티스토리 뷰
회원가입
<login.ejs>
<h4 class="container mt-4"><strong>회원가입</strong></h4>
<div class="container mt-3">
<form action="/register" method="POST">
<div class="form-group">
<label>아이디</label>
<input type="text" class="form-control" name="id" />
</div>
<div class="form-group">
<label>비밀번호</label>
<input type="text" class="form-control" name="pw" />
</div>
<button type="submit" class="btn btn-outline-secondary">가입</button>
</form>
</div>
<server.js>
/* 회원가입 */
app.post('/register', function (요청, 응답) {
db.collection('login').insertOne({ id: 요청.body.id, pw: 요청.body.pw }, function (에러, 결과) {
응답.redirect('/');
});
});
게시글에 작성자 추가
<server.js>
app.post('/add', function (요청, 응답) {
응답.send('전송완료');
db.collection('counter').findOne({ name: '게시물갯수' }, function (에러, 결과) {
console.log(결과.totalPost);
var 총게시물갯수 = 결과.totalPost;
var 저장할거 = {
_id: 총게시물갯수 + 1,
title: 요청.body.title,
date: 요청.body.date,
writer: 요청.user._id // 이 부분 추가
};
db.collection('post').insertOne(저장할거, function (에러, 결과) {
console.log('저장완료');)
db.collection('counter').updateOne(
{ name: '게시물갯수' },
{ $inc: { totalPost: 1 } },
function (에러, 결과) {
if (에러) {
return console.log(에러);
}
}
);
});
});
});
본인 글만 삭제 가능하게
<server.js>
app.delete('/delete', function (요청, 응답) {
console.log(요청.body); // 요청시 함께 보낸 데이터를 찾기(게시글 번호)
요청.body._id = parseInt(요청.body._id); // 문자가 된 id값을 다시 숫자로 변환
// body._id의 글에 저장된 작성자 id와 동일할 때 삭제
var 삭제할데이터 = { _id: 요청.body._id, writer: 요청.user._id };
db.collection('post').deleteOne(삭제할데이터, function (에러, 결과) {
console.log('삭제완료');
if (에러) {
console.log(에러);
}
응답.status(200).send({ message: '성공' });
});
});
'Server > Node.js' 카테고리의 다른 글
| [Node.js] 이미지 업로드, 이미지 서버 만들기 (0) | 2023.07.20 |
|---|---|
| [Node.js] router 폴더와 파일로 API 관리 (0) | 2023.07.20 |
| [Node.js] 검색기능 (0) | 2023.07.19 |
| [Node.js] 로그인 정보가 있는 사용자만 마이페이지 이동 (0) | 2023.07.17 |
| [Node.js] Session으로 로그인 구현 (0) | 2023.07.16 |
댓글
