Mongoose 환경을 설정하고 config를 입력하고 MongoDB에 연결하는 방법을 알고 있다고 가정합니다. 그렇지 않다면 내 대답 here을 참조하십시오.
이제 MongoDB에 블로그로 문서가 있다고 가정 해 보겠습니다. 그래서 Mongoose ORM을 사용하여 CRUD 작업을 수행 할 수 있도록 Blog 용 모델을 만들어야합니다.
프로젝트에이 모듈을 포함하려면 몽구스 모듈이 필요합니다.
프로젝트 루트 디렉토리에서이 명령을 실행하면 자동으로 몽구스가 다운로드됩니다. 는 NPM 그래서 우리는 CRUD 방법을 쓸 곳의이 BlogController.js라는 별도의 파일을 생성 할 수
BlogModel.js
var mongoose = require("mongoose");
var Schema = mongoose.Schema;
var BlogSchema = new Schema({
"title" : { type: String },
"user_id" : { type: String },
"blog_uri" :{ type: String },
"post_date" : { type : Date, default: Date.now},
"body" : { type: String, default: '' },
"comments" : [
{ 'content' : { type: String },
'user_id' : { type: String },
'comment_date' : { type: Date },
'votes' : [
{
'user_id' : { type: String }
}
]
}
],
"hidden" : {type:Boolean, default: false }
});
mongoose.model('Blog', BlogSchema);
--save 몽구스를 설치합니다.
var mongoose = require('mongoose');
var Blog = mongoose.model('Blog');
var ObjectId = require('mongoose').Types.ObjectId;
exports.create = function(req,res){
var blog = new Blog(req.body);
blog.save(function(err){
if(err)
res.json({message: "Error occured while saving"});
else{
res.redirect('/home');
}
});
};
exports.getAll = function(req,res){
Blog.find(function(err,blogs){
if(err){
res.send(err);
}else{
res.json(blogs);
}
});
};
exports.get = function(req,res){
var id ;
try{
id = new ObjectId(req.params.id);
Blog.findById(id,function(err,blog){
if(err){
res.send(err);
}else{
res.render('blog.ejs', {
blog: blog
});
}
});
}catch(e){
res.send(404);
}
};
exports.update = function(req,res){
var id ;
try{
id = new ObjectId(req.params.blog_id);
Blog.findById(id,function(err,blog){
if(err){
res.send(err);
}
blog.save(function(err){
if(err)
res.send(err);
res.render('blog.ejs', {
message: "Blog Updated successfully"
});
});
});
}catch(e){
res.send(404);
}
};
exports.delete = function(req,res){
var id ;
try{
id = new ObjectId(req.params.blog_id);
Blog.remove({_id:id},function(err,blog){
if(err){
res.send(err);
}
res.render('blog.ejs', {
message: "Blog deleted successfully"
});
});
}catch(e){
res.send(404);
}
};
그래서 이것은 몽구스를 사용하는 CRUD와 관련이 있습니다. 나는 프론트 엔드에 템플릿 로직을 넣기 때문에 대개 내 프로젝트에서 res.render (..)를 사용하지 않습니다. 난 res.json (..)을 사용하고 json 데이터를 프론트 엔드로 전달한다. 그러니 계속 시도해보십시오. 나는 당신의 질문에 대답했기를 바랍니다. 보다 나은 예를 보려면 this repo를 참조하십시오. Here 아주 깨끗한 CRUD 구현이 있습니다.
정적 파일을 다운로드하는 이유는'다운로드 '입니다. send,'res.send (obj)'또는'res.json (obj)'사용하기 – Jordonias
@Jordonias'download' 노드와 동작은 http 스트리밍을 사용합니다. 또는 나는 틀린가? – BendEg
** 다운로드 ** 용어는 다소 혼란 스럽습니다. 내가 이해할 수있는 것은 MongoDB와 CRUD 작업을하고 싶다는 것입니다. 맞습니까? – NarendraSoni