node博客页面点击进入详情页

1、前端代码

<a href="/lydetail?id=<%-item._id %>"><%-item.title %></a>

url路径传参,后台index.js用req.query接收值

<body>
  	<!--后台数据加载到页面-->
  	
  	<%- include('head.ejs') %>
  	<h1>留言</h1>
  <div class="form-group">
    <label for="title">标题</label>
    <input type="text" class="form-control" id="title" placeholder="title">
  </div>
  <div class="form-group">
    <label for="con">内容</label>
    <textarea type="text" class="form-control xheditor" id="con" placeholder="con"></textarea>
  </div>
  
  	<button class="btn btn-success liuyan">发布留言</button>
  	<h2>留言列表</h2>
  	
  	<table class="table">
  		<tr><th>序号</th><th>标题</th><th>内容</th></tr>
  		<% list.map(function(item,i){ %>
  			<tr>
  				<td><%-i+1 %></td>
               <!--把id值传给后台(重点)-->
  				<td><a href="/lydetail?id=<%-item._id %>"><%-item.title %></a></td>
  				<td><%-item.con %></td>
  			</tr>
  		<% }) %>
  	</table>
  	
  	
  	
<nav aria-label="Page navigation">
  <ul class="pagination">
    <li>
      <a href="/liuyan?pageNum=<%-pageNum<1?1:parseInt(pageNum)-1 %>" aria-label="Previous">
        <span aria-hidden="true">&laquo;</span>
      </a>
    </li>
    <!--<li><a href="/liuyan?pageNum=1">1</a></li>
    <li><a href="#">2</a></li>
    <li><a href="#">3</a></li>
    <li><a href="#">4</a></li>
    <li><a href="#">5</a></li>-->
    
    <% if(page>4){ %>
	    	<li><a href="/liuyan?pageNum=1">1</a></li>
	    <li><a href="/liuyan?pageNum=2">2</a></li>
	    <li><a href="#">....</a></li>
	    <li><a href="/liuyan?pageNum=<%-page-1 %>"><%-page-1 %></a></li>
	    <li><a href="/liuyan?pageNum=<%-page %>"><%-page %></a></li>
    	
    <% }else{ %>
    
    		<% for(let i =0;i<page;i++){ %>
    			<li><a href="/liuyan?pageNum=<%-i+1 %>"><%-i+1 %></a></li>
    		<% } %>
    
    <% } %>
    
    <li>
      <a href="/liuyan?pageNum=<%-pageNum>page?page:parseInt(pageNum)+1 %>" aria-label="Next">
        <span aria-hidden="true">&raquo;</span>
      </a>
    </li>
  </ul>
</nav>
  	

  </body>

2、index.js

获取数据库的_id的值的方法,通过mongodb对象Objectid

var ObjectId = require('mongodb').ObjectId;

let id = ObjectId(req.query.id)

此时的id即为数据库的_id

var express = require('express');
var router = express.Router();
var mongodb=require('mongodb').MongoClient;
var ObjectId=require('mongodb').ObjectId;
var db_str="mongodb://localhost:27017/html5"
var async=require('async')
/* GET home page. */
router.get('/', function(req, res, next) {
  res.render('index', { name:req.session.name });
});
//登陆
router.get('/login',(req,res)=>{
	res.render('login',{})
})

//注册
router.get('/register',(req,res)=>{
	res.render('register',{})
})
//注销
router.get('/relogin',(req,res)=>{
	req.session.destroy((err)=>{
		if(err){
			console.log(err)
		}else{
			res.redirect('/')
		}
	})
})

//留言
router.get('/liuyan',(req,res)=>{
//	页码
	var pageNum=req.query.pageNum
	pageNum=pageNum?pageNum:1;
//	总页数
	var page=0;
//	每页数量
	var size=3;
//	总条数
	var count=0;
	
	
	mongodb.connect(db_str,(err,database)=>{
		database.collection('liuyan',(err,coll)=>{
			
			async.series([
				function(callback){
					coll.find({}).toArray((err,data)=>{
						count=data.length;
						page=Math.ceil(count/size)
						
//						上一页/下一页
						pageNum=pageNum<1?1:pageNum;
						pageNum=pageNum>page?page:pageNum;
						
						callback(null,'')
						
					})
				},
				function(callback){
					coll.find({}).sort({_id:-1}).limit(size).skip((pageNum-1)*size).toArray((err,data)=>{
						callback(null,data)
					})
				}
			],function(err,data){
				
//				data ==  ['',data]
				res.render('liuyan',{list:data[1],pageNum:pageNum,page:page,size:size,count:count})
				database.close()
			})
			
			
			
			
//			coll.find({}).sort({_id:-1}).toArray((err,data)=>{
//				res.render('liuyan',{list:data})
//				database.close()
//			})
		})
	})
	
	
	
})

//详情
router.get('/lydetail',(req,res)=>{
	console.log(req.query)
	let id=ObjectId(req.query.id)
	mongodb.connect(db_str,(err,database)=>{
		database.collection('liuyan',(err,coll)=>{
			coll.find({_id:id}).toArray((err,data)=>{
				
				res.render('lydetail',{detail:data[0].con})
				database.close()
			})
		})
	})
	
	

})


module.exports = router;

                  《---------剧终---------》

猜你喜欢

转载自blog.csdn.net/QQ_Empire/article/details/81587447