Node.js中Express框架使用axios同步请求(async+await)实现方法
更新时间:2023年04月11日 09:11:53 作者:rrbay
这篇文章主要介绍了Node.js中Express框架使用axios同步请求(async+await)实现方法,结合实例形式分析了express框架使用异步交互axios模块实现同步请求的相关操作技巧与注意事项,需要的朋友可以参考下
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实现了延迟加载刷新页面的效果,结合控制器的交互,最终实现了同步操作的效果。
相关文章
node.js中的console.timeEnd方法使用说明
这篇文章主要介绍了node.js中的console.timeEnd方法使用说明,本文介绍了console.timeEnd的方法说明、语法、使用实例和实现源码,需要的朋友可以参考下2014-12-12
Nodejs使用express连接数据库mongoose的示例
数据库并进行操作通常需要使用第三方库,其中最流行的是mongoose,本文主要介绍了Nodejs使用express连接数据库mongoose的示例,具有一定的参考价值,感兴趣的可以了解一下2024-06-06
Node.js Windows Binary二进制文件安装方法
这篇文章主要介绍了Node.js Windows Binary二进制文件安装,本文给大家介绍的非常详细,具有一定的参考借鉴价值 ,需要的朋友可以参考下2019-05-05
Node.js实现http请求服务与Mysql数据库操作方法详解
这篇文章主要介绍了Node.js实现http请求服务与Mysql数据库操作方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧2022-10-10


最新评论