# YelpCamp: Comments
# [Lecture] YelpCamp: Refactoring App.js
# [Lecture] Note about Seeding the Database
目前 mongoDB 和 mongoose 相較於錄製課程時已經有了重大更新,建議查看討論串 Solution for MongoDB and Mongoose Errors/Bugs with Comments Not Being Stored in Campground 中的回答來更新資料庫系統。
在下一個影片中,seeds.js 的代碼可以直接使用下面的代碼:
var mongoose = require("mongoose");
var Campground = require("./models/campground");
var Comment = require("./models/comment");
var data = [
{
name: "Cloud's Rest",
image: "https://farm4.staticflickr.com/3795/10131087094_c1c0a1c859.jpg",
description: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum"
},
{
name: "Desert Mesa",
image: "https://farm6.staticflickr.com/5487/11519019346_f66401b6c1.jpg",
description: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum"
},
{
name: "Canyon Floor",
image: "https://farm1.staticflickr.com/189/493046463_841a18169e.jpg",
description: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum"
}
]
function seedDB(){
//Remove all campgrounds
Campground.remove({}, function(err){
if(err){
console.log(err);
}
console.log("removed campgrounds!");
Comment.remove({}, function(err) {
if(err){
console.log(err);
}
console.log("removed comments!");
//add a few campgrounds
data.forEach(function(seed){
Campground.create(seed, function(err, campground){
if(err){
console.log(err)
} else {
console.log("added a campground");
//create a comment
Comment.create(
{
text: "This place is great, but I wish there was internet",
author: "Homer"
}, function(err, comment){
if(err){
console.log(err);
} else {
campground.comments.push(comment);
campground.save();
console.log("Created new comment");
}
});
}
});
});
});
});
//add a few comments
}
module.exports = seedDB;
# [Lecture] YelpCamp: Seeding the Database
# [Lecture] Note about comment model lecture
/models/campground.js
var mongoose = require("mongoose");
var campgroundSchema = new mongoose.Schema({
name: String,
image: String,
description: String,
comments: [
{
type: mongoose.Schema.Types.ObjectId,
ref: "Comment"
}
]
});
module.exports = mongoose.model("Campground", campgroundSchema);
/models/comment.js
var mongoose = require("mongoose");
var commentSchema = new mongoose.Schema({
text: String,
author: String
});
module.exports = mongoose.model("Comment", commentSchema);
# [Lecture] YelpCamp: Comment Model
# [Lecture] Note about Comments Lecture
詳見前面的筆記。