nuxt请求错误未处理500无法读取未定义的属性(读取'getHeader')

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

当我尝试使用 nuxt 和 Prisma 在我的第一次项目中设置设置 cookie 时,给我一个错误,提示无法读取未定义的属性(读取“getHeader”),并且我不知道我的代码出了什么问题

my login auth

import { sendError } from 'h3'
import { createUser } from '~~/server/db/users'
import { userTransformer } from '~~/server/transformer/user'
export default defineEventHandler(async (event) => {
    const body = await useBody(event)

    const { username, email, password, repeatPassword, name } = body

    if (!username || !email || !password || !repeatPassword || !name) {
        return sendError(event, createError({
            statusCode: 400, statusMessage: "Invalid params"
        }))
    }

    if (password !== repeatPassword) {
        return sendError(event, createError({
            statusCode: 400, statusMessage: "Password not match"
        }))
    }

    const userData = {
        username, email, password, name, profileImage: 'https://picsum.photos/200/200'
    }

    const user = await createUser(userData)
    return {
        body: userTransformer(user)
    }
})

my setcookie function

export const sendRefreshToken = (event:any, token:any) => {
    setCookie(event.res, "refresh_token", token, {
        httpOnly: true,
        sameSite: true
    })
} 
header nuxt.js prisma setcookie
1个回答
0
投票

也遇到过同样的情况。

错误来自

nuxt-root.vue
,所以我用
VITE_NODE_DEBUG_DUMP=true pnpm dev

查找转换后的代码

错误代码片段 在

nuxt3/dist/app/components/nuxt-root.vue:76:16
中是:

// ...
// L72
const __vite_ssr_import_5__ = await __vite_ssr_import__("vue");

const _sfc_setup = _sfc_main.setup
_sfc_main.setup = (props, ctx) => {
  const ssrContext = __vite_ssr_import_5__.useSSRContext()
  ;(ssrContext.modules || (ssrContext.modules = new Set())).add("../node_modules/.pnpm/[email protected]/node_modules/nuxt3/dist/app/components/nuxt-root.vue")
  return _sfc_setup ? _sfc_setup(props, ctx) : undefined
}
const __vite_ssr_import_6__ = await __vite_ssr_import__("/@id/__x00__plugin-vue:export-helper");

服务器似乎没有在 Vue SSR 上下文中运行,其中

useSSRContext()
返回未定义。这也与控制台中之前的错误相符:

[Vue warn]: inject() can only be used inside setup() or functional components.
[Vue warn]: Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build.
[Vue warn]: Unhandled error during execution of setup function

从这个意义上说,禁用 SSR 将绕过此错误:

export default defineNuxtConfig({
  ssr: false
})

还没有深入研究这一点,但希望这可以提供更多背景信息。

© www.soinside.com 2019 - 2024. All rights reserved.