一、git形式的query传参

git路径传参,点击a链接在网址栏可得到/lydetail?id,然后可在index.js文件接收这个id,路由名为/lydetail

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

<table class="table">
  		<tr><th>序号</th><th>标题</th><th>内容</th></tr>
  		<% list.map(function(item,i){ %>
  			<tr>
  				<td><%-i+1 %></td>

                       <!--点击a链接在网址栏可看到/lydetail?id-->
  				<td><a href="/lydetail?id=<%-item._id %>"><%-item.title %></a></td>
                
  				<td><%-item.con %></td>
  			</tr>
  		<% }) %>
 </table>

 

 二、在index.js里面接收/lydetail?id

注意:此时用req.query.id获取的id不是mongodb里的_id,所以必须要用以下对象获取

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

id = ObjectId(req.query.id);     此时的id才是ajax传过来的id,才能与数据库对照

var ObjectId = require('mongodb').ObjectId;   //mongodb自带对象


router.get('/lydetail',(req,res)=>{
	console.log(req.query)   //获取get传参
	var id = ObjectId(req.query.id);   //此时的id才是ajax传过来的id,才能与数据库对照

	mongodb.connect(db_str,(err,database)=>{
		database.collection('goods',(err,coll)=>{
            coll.find({_id:id}).toArray(function(err,data){
                 res.render('liuyan',{list:data[0].con})  //list值可渲染到liuyan.ejs页面
				 database.close()
            })




			//coll.find({}).sort({_id:-1}).toArray((err,data)=>{
			//	res.render('liuyan',{list:data})
			//	database.close()
			//})
		})

	})
	
	
})

然后点击a标签时就会得到数据库相对应的id,然后就可以获取数据库对应的值,然后来渲染页面(可用于点击进入详情页,例如:新闻列表)

 

   .........然后,页面就显示出来了.......................

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐