我正在尝试为Axios请求创建一个实用程序函数。
我首先在global.d.ts
处创建AxiosConfig
的别名:
import { Method } from 'axios';
export {};
declare global {
type AxiosConfig = {url: string, method: Method, data: object};
}
然后,在我的utils.ts
我创建了以下函数:
import axios, { AxiosResponse } from 'axios';
import * as https from 'https';
export async function axiosReq(options: AxiosConfig): Promise<AxiosResponse<unknown, any>> {
try {
const data = await axios({
url: options.url,
method: options.method,
data: options.data,
httpsAgent: new https.Agent({
rejectUnauthorized: false
})
});
return data;
} catch (error) {
console.log(error)
throw new Error('Failed to fetch videos...')
}
}
最后,使用函数:
import { axiosReq } from "../utils";
const AxiosConfig = {
url: 'https://172.24.14.12/api/baseline',
method: 'POST',
data: {}
};
const res = await axiosReq(AxiosConfig);
节点在启动时崩溃(甚至在使用axiosReq
之前)。只有当我注释掉const res = await axiosReq(AxiosConfig)
节点时才会启动而不会崩溃。我没有收到任何信息错误。
我做错了什么?
您将AxiosConfig视为值或变量,而实际上它只是一个类型。试着
const postBaseline: AxiosConfig = {...
然后将res调用中的AxiosConfig替换为postBaseline