nodejs 실전 express 노트 의 추가 편집 및 삭제 기능
14158 단어 nodejs
1. 글 페이지 에 링크 편집 및 삭제 추가
<span><a class="edit" href="/edit///"> a>span>
<span><a class="edit" href="/edit///"> a>span>
2. Post 모델 에 편집 함수 추가
Post.edit= function(name,day,title,callback){
//
mongodb.open(function(err,db){
if(err){
return callback(err);
}
// posts
db.collection('posts',function(err,collection){
if(err){
mongodb.close();
return callback(err);
}
// ,
collection.findOne({
"name":name,
"time.day":day,
"title":title,
},function(err,doc){
mongodb.close();
if(err){
return callback(err);
}
callback(null,doc);// (markdown )
});
});
});
};
3. index. js 입구 파일 에 edit 경로 규칙 추가
//
app.get('/edit/:name/:day/:title',checkLogin);
app.get('/edit/:name/:day/:title',function(req,res){
var currentUser = req.session.user;
Post.edit(currentUser.name,req.params.day,req.params.title,function(err,post){
if(err){
req.flash('error',err);
return res.redirect('back');
}
res.render('edit',{
title:' ',
post:post,
user:req.flash('success').toString(),
success:req.flash('error').toString()
});
});
});
4. edit. ejs 템 플 릿 엔진 구축
<form method="post">
<br/>
<input type="text" name="title" value="" disabled="disabled"/>
<br/>
<textarea name="post" cols="100" rows="20">
textarea>
form>
5. Post 모델 에 update 방법 추가
//
Post.update=function(name,day,title,post,callback){
//
mongodb.open(function(err,db){
if(err){
return callback(err);
}
// posts
db.collection('posts',function(err,collection){
if(err){
mongodb.close();
return callback(err);
}
collection.update({
"name":name,
"time.day":day,
"title":title,
},{
$set:{post:post}
},function(err){
mongodb.close();
if(err){
return callback(err);
}
callback(null);
});
});
});
};
6. 수정 성공 루트 추가
//
app.post('/edit/:name/:day/:title',checkLogin);
app.post('/edit/:name/:day/:title',function(req,res){
var currentUser= req.session.user;
Post.update(currentUser.name,req.params.day,req.params.title,req.body.post,function(err){
var url=encodeURL('/u/'+req.params.name+'/'+req.params.day+'/'+req.params.title);// , github ,
if(err){
req.flash('error',err);
return res.redirect(url);//
}
req.flash('success',' !');
res.redirect(url);// !
});
});
7, Post 모델 에 remove 함수 추가
//
Post.remove=function(name,day,title,callback){
//
mongodb.open(function(err,db){
if(err){
return callback(err);
}
// posts
db.collection('posts',function(err,collection){
if(err){
mongodb.close();
return callback();
}
// 、
collection.remove({
"name":name,
"time.day":day,
"title":title
},{
w:1
},function(err){
mongodb.close();
if(err){
return callback(err);
}
callback(null);
});
});
});
};
8. 삭제 루트 추가
//
app.get('/remove/:name/:day/:title',checkLogin);
app.get('/remove/:name/:day/:title',function(req,res){
var currentUser= req.session.user;
Post.remove(currentUser.name,req.params.day,req.params.title,function(err){
if(err){
req.flash('error',err);
return res.redirect('back');
}
req.flash('success',' ');
res.redirect('/');
});
});
9. 권한 을 수정 하여 하나의 계 정 을 실현 하면 자신의 글 만 편집 할 수 있 습 니 다.
<span><a class="edit" href="/edit///"> a>span>
<span><a class="edit" href="/edit///"> a>span>
//
if (user && (user.name == post.name)) {%>
<span><a class="edit" href="/edit///"> a>span>
<span><a class="edit" href="/edit///"> a>span>
작은 매듭
편집 원 리 는 현재 매개 변 수 를 가 져 오 는 것 입 니 다. 대응 하 는 데이터 베 이 스 를 가 져 오 는 것 입 니 다. 데이터 베 이 스 를 사용 하 는 업데이트 함수 로 정 보 를 수정 하 는 것 입 니 다.삭제 원리: 매개 변수 에 따라 데이터베이스 정 보 를 직접 삭제 하고 홈 페이지 로 돌아 갑 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Node.js를 AWS서버에서 사용하는 실습간단한 예제와 함께 AWS에서 Node.js를사용하는 법을 배워보도록 하겠다. 해당 github에 있는 레포지토리로 사용을 할 것이다. 3000번 포트로 Listen되는 예제이고 간단히 GET, POST, DELET...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.