koa中需要get请求别的服务器只能用原生的http吗?

app.use(async ctx => {
  console.log('ctx',ctx)  
  if ("/qsonhs.aspx" == ctx.path) {
    http
      .get("http://nodejs.cn/index.json", res => {
        const { statusCode } = res;
        const contentType = res.headers["content-type"];

        let error;
        if (statusCode !== 200) {
          error = new Error("请求失败\n" + `状态码: ${statusCode}`);
        } else if (!/^application\/json/.test(contentType)) {
          error = new Error(
            "非法的 content-type.\n" +
              `期望的是 application/json 但接收到的是 ${contentType}`
          );
        }
        if (error) {
          console.error(error.message);
          // 消费响应的数据以释放内存。
          res.resume();
          return;
        }

        res.setEncoding("utf8");
        let rawData = "";
        res.on("data", chunk => {
          rawData += chunk;
        });
        res.on("end", () => {
          try {
            const parsedData = JSON.parse(rawData);
            console.log(parsedData);
          } catch (e) {
            console.error(e.message);
          }
        });
      })
      .on("error", e => {
        console.error(`报错: ${e.message}`);
      });
  }
});
阅读 2.2k
1 个回答

可以使用第三方库,axios或request

推荐问题