«

Node.js中Express框架怎么使用axios同步请求

时间:2024-7-12 11:14     作者:韩俊     分类: Javascript


这篇文章主要介绍了Node.js中Express框架怎么使用axios同步请求的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Node.js中Express框架怎么使用axios同步请求文章都会有所收获,下面我们一起来看看吧。

首先定义一个方法syncAxios

let axios = require('axios');

exports.syncAxios = function (obj = {}) {
  let url =  "http://www.rrbay.com/api/";

  return new Promise((resolve, reject) => {
    axios(url, {
      method: 'POST',
      timeout: 5000,
      params: {
        sProcName: obj.sProcName,
        idNo: obj.id,
        userName: obj.qq,
        overTime: obj.endTime
      }
    }).then((res) => {
      resolve(res.data);
    }).catch((error) => {
      reject(error)
    })
  })
};

然后在controllers 调用

exports.check = function (req, res) {
  //定义async方法体
  XXXMode.findById(id).populate('author').exec(async function (err, result) { 
    let dataCode = false;
    if(result.status ==0){
        //同步调用
      await baseapi.syncAxios({
          sProcName: 'Update',
          id: '000000-1111-2222-3333-9999999',
          qq: '391502069',//result.author.name,
          endTime:  '2022/12/31 11:39:05'//result.EndTime
        }).then((data) => {
          console.log(data, 'res');
        }).catch((err) => {
          console.log(err && err.stack);
        });

    }
    result.save(function (err, onewxtob) {
      if (req.xhr) {
        return res.json({
          status: !err
        })
      }
    });
  });
};

view中使用模板引擎jade,需要在请求

check
后,延迟刷新页面显示请求结果

setTimeout(function () {
   $(location).attr('href',window.location.href)
}, 1000)

这里的setTimeout实现了延迟加载刷新页面的效果,结合控制器的交互,最终实现了同步操作的效果。

标签: javascript

热门推荐