如何使用承诺从 node.js 中的 mysql 查询中获取结果
How to use promises to get result from mysql query in node.js
我一直在使用普通回调来获取 mysql 查询来为我的应用程序创建一个休息 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 library,但文档对此不是很清楚。有关它的任何帮助将是 appreciated.Thanks
你可能想像这样使用它
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);
}
});
您可以在 between.I 中添加您的错误处理序列希望它能帮助您谢谢
我一直在使用普通回调来获取 mysql 查询来为我的应用程序创建一个休息 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 library,但文档对此不是很清楚。有关它的任何帮助将是 appreciated.Thanks
你可能想像这样使用它
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);
}
});
您可以在 between.I 中添加您的错误处理序列希望它能帮助您谢谢