之前确实挺忙的在家,但是既然选择了远方就要承受远方所要经受的磨难,不过这又算是什么呢,毕竟社会工作中的竞争会更加的激烈,所以就先把考驾照之类的事情先放下吧,先去认真完成一件事情能做好也算是不错了。今天因为之前学es6的时候没有太在意promise所以就简单的去学习了一番,又把自己之前写的接口用promise写,真的是很舒服啊
原来的没有用promise的:
router.post('/register', function (req, res) { //注册接口
// res.render('register.html')
//1,获取表单提交数据
//2,配置body-parser
//3,发送响应
//判断,存在不注册,昵称也不能一样,邮箱也必须
var body = req.body
User.findOne(
{
$or: [
{
email: body.email
}, {
name: body.name
}
]
}, function (err, data) {
if (err) {
return res.status(500).json({ err: "2", message: 'err' })
}
if (data) {
return res.status(200).json({ err: "1 ", message: '已存在' })
}
new User(body).save(function (err, user) {
console.log('注册成功');
if (err) {
return res.status(500).json({
err_code: 500,
message: 'Internal error'
})
}
//记录用户登录状态
req.session.user = user //这就先放一下,弄不了了
user_session = user
// res.redirect('/') //服务端对异步请求无效对同步才有效,异步无效,通过客户端跳转
// console.log(req.session.user);
res.status(200).send(JSON.stringify({ //Express提供了一个响应方法:json(),该方法接收一个对象作为参数,他会自动帮你生成字符串再发送给浏览器
err: 0, //因此还能写成return res.status(500).json({ success: true,foo:'bar'})
message: "成功了"
})) //接收的是json格式的字符串
//有data则说明邮箱存在
})
})
})
用过之后的:
router.post('/register',(req,res,next) => {
var body = req.body
User.findOne({
$and: [
{
useremail: body.useremail
},
{
username: body.username
}
]
})
.then((data) => {
if(data) {
console.log("用户已存在");
} else {
return new User({
username: body.username,
userpassword: body.userpassword,
useremail: body.useremail
}).save()
}
})
.then((data) => {
console.log(req.session);
console.log(req.session.user);
req.session.user = data
console.log(req.session.user);
console.log(data);
console.log(11111111111111);
console.log("注册成功");
return res.json({err: 0})
})
})
确实是比那个嵌套用着更清晰简单,在深入学习一下promise吧!