首先完成路由index.js的设置,将
app.get(‘/question/:id’,function(req,res){
});
修改为:
app.get(‘/question/:id’,function(req,res){
User.findQuestion(req.params.id, function(err, items){
res.render(‘question’,{
items:items[0],
user:req.session.user,
id:req.params.id,
});
});
});
在user.js中添加
在user.js中添加
User.findQuestion=function(id,callback){
//打开数据库
mongodb.open(function(err, db){
if(err){
return callback(err);
}
db.collection(‘question’, function(err, collection){
if(err){
mongodb.close();
return callback(err);
}
collection.find({_id:Number(id)}).toArray(function(err,items){
if(err) throw err;
mongodb.close();
return callback(err,items);
});
});
});
};
在views中增加question.ejs文件,内容如下:
<%- include header %>
<div class=”container”>
<div class=”row-fluid”>
<div class=”span7″>
<div>
<h1><%= items.title %></h1>
<p><%= items.askText %></p>
</div>
<ul>
<% items.answer.forEach(function(q, index){ %>
<li>
<h4><%= q.user.name %></h4>
<p><%= q.answer %></p>
</li>
<% })%>
</ul>
<form action=”answer” method=”post”>
<input name=”questionId” value=”<%= id %>” style=”display:none”>
<textarea name=”answer”></textarea>
<input type=”submit” value=”Submit” />
</form>
</div>
<div class=”span4″>
<h2>我的信息</h2>
<h2>我的信息</h2>
<h2>我的信息</h2>
<h2>我的信息</h2>
<h2>我的信息</h2>
</div>
</div>
</div>
<%- include footer %>
下面是实现回答问题功能:
还是修改路由设置,将index.js中
app.post(‘/answer’,function(req,res){
});
修改为
app.post(‘/answer’,function(req,res){
var answer={};
answer.answer=req.body.answer;
answer.user=req.session.user;
questionId=req.body.questionId;
User.answer(questionId,answer,function(info){
res.redirect(‘/question/’+questionId);
})
});
需要在user.js中添加
User.answer=function(questionId,answer,callback){
//打开数据库
mongodb.open(function(err, db){
if(err){
return callback(err);
}
db.collection(‘question’, function(err, collection){
if(err){
mongodb.close();
return callback(err);
}
//这里可以暂停一下进度,阅读下mongodb的一些操作方法,本文的最下面有一个还不错的pdf讲解mongodb的增删改查的
collection.update({_id:Number(questionId)},{$push:{answer:answer}},function(err,items){
if(err) throw err;
mongodb.close();
return callback(items);
});
});
});
};
好了,回答功能完成了。
下面是一个我觉得不错的mongodb学习手册
http://pan.baidu.com/share/link?shareid=171618426&uk=52813371
未经允许不得转载:前端撸码笔记 » nodejs实战案例(Express框架+mongoDB)之10:提问页面,回答问题