queryselector必须是一个对象mongodb

我尝试在数据库中发布数据,但我得到这个错误queryselector must be an object mongodb 。 这是我的代码

模型var MongoClient = require('mongodb')。MongoClient;

 exports.register = function(val,cb) { var email = val['email']; var password = val['password']; var user = val['user']; MongoClient.connect(//url connect to db ,function(err,db){ if(err) cb(null,{result:false,message:err}); db.collection('user').findOne(email,function(err,user){ if(err) cb(null,{result:false,message:err}); if(user){ cb(null,{result:false,message:'Email already exists'}); }else{ db.collection('user').insert(user,function(err){ if(err) cb(null,{result:false,message:err}); cb(null,{result:true,message:'Success'}); }) } }) }); }; 

调节器

 var express= require('express'); var router = express.Router(); var user = require('../models/register'); router.post('/',function(req,res) { var val =[]; val['email'] = req.body.email; val['password'] = req.body.password; val['user']={ email:req.body.email, password:req.body.password } user.register(val,function(err,data){ if(err) console.log(err) res.json(data); }) }); module.exports = router; 

我尝试更改为val={}但不能工作。 我的错在哪里? 请帮帮我

它应该是..

  exports.register = function(val,cb) { var email = val['email']; var password = val['password']; var user = val['user']; MongoClient.connect(//url connect to db ,function(err,db){ if(err) cb(null,{result:false,message:err}); db.collection('user').findOne({email:email},function(err,user){ if(err) cb(null,{result:false,message:err}); if(user){ cb(null,{result:false,message:'Email already exists'}); }else{ db.collection('user').insert(user,function(err){ if(err) cb(null,{result:false,message:err}); cb(null,{result:true,message:'Success'}); }) } }) }); };