node.js 将json字符串转为json对象的方法
node.js 将json字符串转为json对象的方法
在做查询的时候遇到的一个坑,记录一下:
根据不同的类目进行查找的时候,我要获取不同类目的value和input的value,但是为了符合mongodb查找的条件,我将二者的value值组合成了一个字符串,但是还需要将字符串转为对象才能使用,通常在js中使用eval()和JSON.parse(),这两个方法在nodejs中也是适用的。
但是要注意:在拼接字符串的时候要按照json的格式拼接,key和value都要加上双引号,并且和拼接用的引号区分开:
下面用代码记录一下:
<form class="navbar-form navbar-left" action="/finduser" method="get">
<div class="form-group">
<select name="select">
<option value="name"> 姓名</option>
<option value="age"> 年龄</option>
<option value="sex"> 性别</option>
<option value="tel"> 电话</option>
<option value="email"> 邮箱</option>
</select>
<input type="text" class="form-control" placeholder="Search" name="search">
</div>
<button type="submit" class="btn btn-default">Submit</button>
</form>
在nodeJS代码中:
router.get('/finduser',function(req,res){
var select = req.query.select
var search = req.query.search
var jsonstr = '{"'+select+'":"'+search+'"}';
// var jsonObj = eval('(' + json + ')');
var jsonObj = JSON.parse(jsonstr);
mongoClient.connect(dbUrl,function(err,db){
if(err){
console.log('连接数据库失败');
}else{
db.collection('student').find(jsonObj).toArray(function(err,data){
if(err){
console.log('查找失败');
}else{
// res.redirect('/listuser')
res.render('listuser',{datalist:data})
}
})
}
})
})