适用于 NodeJS 版本 16 但不适用于版本 17 或更高版本的 Axios 代码"/>
适用于 NodeJS 版本 16 但不适用于版本 17 或更高版本的 Axios 代码
在原开发环境,node v18.16.0(npm v9.5.1)运行时,出现如下错误 错误:写入 EPROTO 80DABDE101000000:error:0A000152:SSL routines:final_renegotiate:unsafe legacy renegotiation disabled:../deps/openssl/openssl/ssl/statem/extensions.c:922:
但是,使用 nvm 的节点 v16.20.0 (npm v8.19.4) 工作正常。 为什么会这样?我该怎么做才能让它在节点 v18.16.0 (npm v9.5.1) 中正常工作
const axios = require('axios');
const getUrlXY = async ({x, y}) => {
const response = await axios.get(`,${y},${x}`, {
maxRedirects: 0,
validateStatus: null,
});
const paramsObject = {};
response.headers.location.split("?")[1].split("&").forEach(param => {
const [name, value] = param.split("=");
paramsObject[name] = value;
});
return {
...paramsObject,
url: response.headers.location,
};
};
const getCarInfo = async ({urlX: urlX1, urlY: urlY1}, {urlX: urlX2, urlY: urlY2}) => {
const response = await axios.get(`.json?roadside=ON&sp=${urlX1},${urlY1},start,POINT,&ep=${urlX2},${urlY2},end,POINT,&carMode=SHORTEST_REALTIME&carOption=NONE`);
return response.data;
}
const main = async () => {
const start = {
urlX: 523953,
urlY: 1084098,
};
const end = {
urlX: 474055,
urlY: 1088210,
};
const carInfo = await getCarInfo(start, end);
console.log(carInfo);
}
main();
回答如下:
更多推荐
适用于 NodeJS 版本 16 但不适用于版本 17 或更高版本的 Axios 代码
发布评论