用express搭建论坛,在写发表文章时,遇到错误。文章保存到数据库然后重定向到首页,文章能够正常保存到数据库,但是一发表后,服务器就挂了,客户端报错:
下面是我的post路由:
router.post('/',checkLog,function(req,res,next){
var newPost = new Post({
name:req.session.user.name,
title:req.body.title,
content:req.body.content
});
console.log(newPost);
newPost.save(function(err,post){
if(err){
console.log("发表文章失败");
res.redirect('/post');
}
console.log('发表文章成功');
res.redirect('/');
});
});
Post model:
var mongodb = require('./db');
function Post(post){
this.name = post.name;
this.title = post.title;
this.content = post.content;
}
Post.prototype.save = function(callback){
var date = new Date();
var time = {
date: date,
year : date.getFullYear(),
month : date.getFullYear() + "-" + (date.getMonth() + 1),
day : date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate(),
minute : date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate() + " " +
date.getHours() + ":" + (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes())
};
var post = {
name:this.name,
title:this.title,
content:this.content,
time:time
};
mongodb.open(function(err,db){
if(err){
console.log("打开文章数据库失败");
return callback(err);
}
db.collection("posts",function(err,collection){
if(err){
mongodb.close();
return callback(err);
}
collection.insert(post,function(err,post){
if(err){
mongodb.close();
return callback(err);
}
console.log("文章成功保存到数据库");
callback(null,post);
});
});
});
};
Post.get = function(name, 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);
}
var query = {};
if (name) {
query.name = name;
}
//根据 query 对象查询文章
collection.find(query).sort({
time: -1
}).toArray(function (err, docs) {
mongodb.close();
if (err) {
return callback(err);//失败!返回 err
}
callback(null, docs);//成功!以数组形式返回查询的结果
});
});
});
};
/*
Post.get = function(callback){
mongodb.open(function(err,db){
if(err){
console.log("打开数据库失败");
return callback(err);
}
db.collection("posts",function(err,collection){
if(err){
return callback(err);
}
collection.find().toArray(function(err,posts){
if(err){
return callback(err);
}
return callback(null,posts);
});
});
});
};
*/
module.exports = Post;
求助,谢谢!
后台有显示错误吗