mongoose + express 验证加保存
发布于 2年前 作者 sdfcbs91 872 次浏览

找了社区N遍资料,终于今天终于做好了验证跟保存,由于异步io处理方式,跟平常开发模式不同,有点不习惯。 交互方式是ajax: 前端:$(“#ss”).click(function(){ var params ={ name: $(“#name”).val(), age: $(“#age”).val(), like: $(“#like”).val() }; var s="sdf" $.ajax({ url:"/reg",//http://127.0.0.1:3000 type:"post", data: params,//s, dataType: 'json’, success: function(res){ $(“#ss1”).html(res.data).show(); }, error: function (msg) { if ( msg.statusText == ‘timeout’ ) alert(‘网络超时’); else $(“#ss1”).html(“更新失败”).show();;

  }
});

}); 后端:就取重要的部分。 var mongoose = require(‘mongoose’);
mongoose.connect(‘mongodb://localhost/blog’); var Users = mongoose.model('user’,{ name:String
,age:String ,like:String });

var User = function(){};

User.prototype.addUser=function(req,res,i){ if(typeof i == “undefined”){ var query = Users.find(function(err,persons){ for(t in persons){ for(v in persons[t]){ if(v.toString() =="name"){ if(persons[t][v] == req.body.name){ res.send({data:"用户名已存在,请更换一个!"}); console.log(“用户名已存在!”); return false; } } } } new User().addUser(req,res,1); }); }else{ var man = new Users({name:req.body.name,age:req.body.age,like:req.body.like}); var str ="";

man.save(function(err){
  if(err){
    str="系统有误";
  }else{
    str="保存成功";
  }
  res.send({data:str});
});

} } 原理:采用了回调处理,感觉这样更符合自己的逻辑,

5 回复

你这样的写法遇到在复杂一点的逻辑就不行了,建议还是考虑使用async库

var query = Users.find(function(err,persons){}); 应该使用条件查询: Users.find({name:name}).exec(function(err , user_){ if … else if … });

假如加上条件,那么是这样的吗? Users.find({name:name}).exec(function(err , user_){ if ? if(user_){ "有数据,已存在"; }esle{ “无数据,不存在” }

刚开始接触Nodejs,计划多写一些基础的东西,打好基础…

回到顶部