适用于 NodeJS 版本 16 但不适用于版本 17 或更高版本的 Axios 代码

问题描述 投票:0回答:0

在原开发环境,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(`https://map.kakao.com/link/map/PIN,${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(`https://map.kakao.com/route/carset.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();
javascript node.js npm axios nvm
© www.soinside.com 2019 - 2024. All rights reserved.