Как использовать обещания, чтобы получить результат из запроса MySQL в node.js - PullRequest
0 голосов
/ 06 октября 2018

Я использую обычные обратные вызовы для получения запроса 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библиотека, но документация не совсем ясно об этом. Любая помощь в этом будет оценена. Спасибо

1 Ответ

0 голосов
/ 06 октября 2018

Возможно, вы захотите использовать его несколько следующим образом

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);
  }
});

Вы можете добавить свои последовательности обработки ошибок между ними. Надеюсь, это поможет, спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...