gpt4 book ai didi

mysql - 如何在node.js中使用promise从mysql查询中获取结果

转载 作者:行者123 更新时间:2023-11-29 16:53:51 28 4
gpt4 key购买 nike

我一直在使用普通的回调来获取 mysql 查询来为我的应用程序创建一个 REST API,但是代码变得太复杂了,就像这是获取用户个人资料的代码

const con=require('../mysql.js');
router.route("/profile")
.post(checkjwt,(req,res,next)=>{
try{
var decoded = jwt.verify(req.body.token, config.secret);
var mobile=decoded.mobile;



if(mobile==null){
res.json({
status:404,
message:'Please provide mobile Number'
});
}
else{
var sql="select * from flavica_user where USER_MOBILE=?";
con.query(sql,mobile,(err,result)=>{
if(err){
res.json({
status:204,
message:err.sqlMessage
});
}
else if(result.length==0){
res.json({
status:404,
message:'No Data Found'
});
}
else if(result.length>0){
res.json({
status:200,
message:result[0]
});
}

});


}
}
catch(err) {
res.json({
status:404,
message:'Wrong Authorization token'
});
}



})

我搜索了 bluebird Promise 库,但文档对此不太清楚。任何有关它的帮助将不胜感激。谢谢

最佳答案

你可能想像这样使用它

var Promise = require("bluebird"); //use blue bird library after installing npm install bluebird

const con=Promise.promisifyAll(require('../mysql.js'));

router.route("/profile").post(checkjwt,(req,res,next)=>{
try{
var decoded = jwt.verify(req.body.token, config.secret);
var mobile=decoded.mobile;
var sql="select * from flavica_user where USER_MOBILE=?";
con.queryAsync(sql,mobile).then(function(result){//bluebird identifies with Async
res.json({
status:200,
message:result
})
}).catch(function(err){
console.log(err);
})

}
catch(err) {
console.log(err);
}
});

您可以在两者之间添加错误处理序列。希望它能有所帮助,谢谢

关于mysql - 如何在node.js中使用promise从mysql查询中获取结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52678553/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com