解码ReadableStream对象nextjs 13 API路由

rqmkfv5c  于 2023-04-05  发布在  其他
关注(0)|答案(2)|浏览(179)

我正在向服务器端代码发送一个值,但该值未被正确读取。我正在使用NextJS实验应用程序目录

//src/app/api/auth/route.js

export async function POST(req, res) {
  console.log(req.body);
  const { address } = req.body;
  const isAuthenticated = await checkBalance(address, threshold);
  if (isAuthenticated) {
    return new Response("Authorized", { status: 200 });
  } else if (isAuthenticated == false) {
    return new Response("Unauthorized", { status: 401 });
  } else if (isAuthenticated == undefined) {
    return new Response("Error", { status: 500 });
  }
}

控制台日志为:ReadableStream { locked: false, state: 'readable', supportsBYOB: false }
const地址是undefined
这是API调用:

const response = await fetch("/api/auth", {
          method: "POST",
          headers: {
            "Content-Type": "application/json",
          },
          body: JSON.stringify({ address: walletAddress }),
        });
        const data = await response.json();

我在另一个类似问题的答案中读到nextjs 12+应该自动解析请求-我做错了什么?我假设nextjs有一个解码ReadableStream的协议,但我在文档或示例中找不到任何相关的内容,也许是因为有一个框架不可知的方法来解码我不知道的对象?
先谢谢你。

uubf1zoe

uubf1zoe1#

我觉得你应该做的是:

...
const { address } = req.body
const isAuthenticated = await checkBalance(address, threshold);
...
0sgqnhkj

0sgqnhkj2#

一个discord用户推荐了const address = await req.json();而不是const {address} = req.body,它可以工作。

相关问题