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})
                }
            })
        }
    })
})
posted @ 2017-07-10 16:45  rainbow8590  阅读(508)  评论(0编辑  收藏  举报