如何在NextJs 9 Serverless

时间:2020-04-18 03:55:54

标签: authentication post return-value next.js serverless

我正在使用NextJs构建无服务器应用程序,并且我坚持在向数据库发出发布请求时如何获取包含用户JWT的返回值。一切都按预期进行,但我无法坚持这一点。

在我的登录页面上,这是我处理用户提交的数据的方式:

const res = await fetch(`${process.env.BASE_URL}/api/login`, {
  method: "POST",
  headers: {
    "Content-Type": "application/json"
  },
  body: JSON.stringify(userInfo)
})

console.log('successfully logged in')
console.log(res)

在我的API中,向/api/login发出请求时返回值的方式是:

return res.status(201).json({
  message: 'Account successfully signed in!',
  user,
  token
})

现在,当我在开发工具中检查console.log时,响应如下所示:

type: "basic"
url: "http://localhost:3000/api/login"
redirected: false
status: 200
ok: true
statusText: "OK"
headers: Headers {}
body: ReadableStream
locked: false
__proto__: ReadableStream
bodyUsed: false
__proto__: Response

那里什么都没有,我也不知道为什么?

1 个答案:

答案 0 :(得分:1)

这是 fetch 正文响应,您应按期望的类型(在您的情况下,json)对其进行解码。

const res = await fetch(`${process.env.BASE_URL}/api/login`, {
  method: "POST",
  headers: {
    "Content-Type": "application/json"
  },
  body: JSON.stringify(userInfo)
})
const data = await res.json(); // <--- this is the missing part

console.log('successfully logged in')
console.log(data)