找了社区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});
});
} } 原理:采用了回调处理,感觉这样更符合自己的逻辑,
你这样的写法遇到在复杂一点的逻辑就不行了,建议还是考虑使用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,计划多写一些基础的东西,打好基础…