hn-hlw-service/request.js
2026-07-27 11:28:33 +08:00

78 lines
2.0 KiB
JavaScript

const axios = require("axios");
const logger = require("./utils/logger");
const dayjs = require('dayjs');
exports.main = async (url, data, type, config) => {
if (type === "POST") {
return await post(url, data, config);
} else if (type === "FORM_POST") {
return await formPost(url, data);
} else {
return await get(url);
}
};
function get(url) {
const info = { url, method: "GET", start: dayjs().format('YYYY-MM-DD HH:mm:ss:SSS') };
return new Promise(async (resolve, reject) => {
try {
const response = await axios.get(url);
resolve(response.data);
writeLog(info, response);
} catch (error) {
info.errMsg = error?.message || error;
writeLog(info)
reject(error);
// throw error;
}
});
}
function post(url, data, config) {
const info = { url, method: "POST", data, start: dayjs().format('YYYY-MM-DD HH:mm:ss:SSS') };
return new Promise(async (resolve, reject) => {
try {
const response = await axios.post(url, data, config);
resolve(response.data);
writeLog(info, response);
} catch (error) {
info.errMsg = error?.message || error;
writeLog(info)
reject(error);
// throw error;
}
});
}
function formPost(url, data) {
const info = { url, method: "FORM_POST", data, start: dayjs().format('YYYY-MM-DD HH:mm:ss:SSS') };
return new Promise(async (resolve, reject) => {
try {
const response = await axios.post(url, data, {
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
});
resolve(response.data);
writeLog(info, response);
} catch (error) {
info.errMsg = error?.message || error;
writeLog(info, response);
reject(error);
// throw error;
}
});
}
function writeLog(info, response) {
try {
if (response) {
const str = JSON.stringify(response.data);
info.response = str.slice(0, 1000);
}
info.end = dayjs().format('YYYY-MM-DD HH:mm:ss:SSS');
logger.info(JSON.stringify(info));
} catch (e) { }
}