next.js API route.ts从axios返回带有JSON的响应类型

svmlkihl  于 2023-03-18  发布在  iOS
关注(0)|答案(1)|浏览(108)

我想制作MSA,所以我想同时使用前端服务器和后端服务器。所以前端调用API/route结构文件api。文件api使用axios调用后端api。问题是return new Response(callAxios())代码一直告诉我红线错误标记可能无法确认JSON或字符串等类型。使用没有问题,因为我仍然可以得到JSON数据,但我如何才能删除红线错误标记,我不熟悉 typescript ,今天才开始。

import axios from "axios"

export async function GET(request: Request) {
  return new Response(callAxios())
}

async function callAxios(){
  await axios.get('http://localhost:8080/firstCall', {
    params: { // query string
      title: 'NEXT JS'
    },
    headers: { 
      'X-Api-Key': 'my-api-key'
    },
  }).then(res => {
      console.log(res.data)
      return res.data
  })
}

删 debugging 误标记并确保接受的数据类型正确。

xmq68pz9

xmq68pz91#

我的目标应该是这样的:

import axios from "axios"

export async function GET(request: Request) {
  return new Response(await callAxios())
}

async function callAxios(){
  const result = await axios.get('http://localhost:8080/firstCall', {
    params: { // query string
      title: 'NEXT JS'
    },
    headers: { 
      'X-Api-Key': 'my-api-key'
    },
  });

  console.log(result, result.data);
  return result.data;
}

可以使用asyncawait,也可以使用回调,但不能同时使用。

相关问题