# 封装同步方法
# request.js
const requestSync = require("request");
let synchronous_post = function (url, params) {
let options = {
url: url,
form: params
};
return new Promise(function (resolve, reject) {
requestSync.get(options, function (error, response, body) {
if (error) {
reject(error);
} else {
resolve(body);
}
});
});
}
let syncBody = async function (url) {
var url = url;
let body = await synchronous_post(url);
return body.toString('utf-8');
}
module.exports = syncBody; //暴露请求方法,该方法是GET,POST同理
# 使用
// 在其他函数内部使用
app.get('/', async (req, res)=>{
var data=await syncBody('http://www.baidu.com') //在其他函数中使用,可以直接获取数据,express举例
res.send(data);
})
// 在外部使用
var urls=[
'http://www.qq.com',
'http://www.baidu.com',
'http://www.sina.com.cn'
]
urls.forEach(element => {
var body = syncBody(element); //函数外部使用,返回的是promise需要.then去解析数据
body.then(data=>{
console.log(data);
})
});
← sync-request mysql →