如何在 Nuxt 3 服务器/api 中传递参数?

维特根斯坦

我无法弄清楚如何将参数传递给 Nuxt 3 中的匿名函数。

index.vue:

<template>
  <form @submit.prevent="signUpNewsletter()">
    <input type="email" placeholder="[email protected]" v-model="userEmail">
    <input type="submit" value="Submit">
  </form>
</template>

<script setup>
const userEmail = ref('[email protected]')

function signUpNewsletter () {
  useAsyncData(
    'newsletter',
    () => $fetch('/api/sign_up_news', {
      method: 'POST', // Post method works
      body: {
        email: userEmail.value
      }
    })
  )
}
</script>

server/api/sign_up_news.js:

import { createClient } from '@supabase/supabase-js'

export default async (email) => { // can't read the parameter
  const SUPABASE_KEY = 'key123'
  const SUPABASE_URL = 'url.supabase.co'
  const supabase = createClient(SUPABASE_URL, SUPABASE_KEY)

  const { data, error } = await supabase
    .from('newsletter')
    .insert([{ email }]) // <<< Fails!
  return data
};

working:

import { createClient } from '@supabase/supabase-js'

export default async () => {
  const SUPABASE_KEY = 'key123'
  const SUPABASE_URL = 'url.supabase.co'
  const supabase = createClient(SUPABASE_URL, SUPABASE_KEY)

  const { data, error } = await supabase
    .from('newsletter')
    .insert([{ email: '[email protected]' }]) // <<< Works!
  return data
};

你知道如何将参数传递到 Nuxt 3 服务器/api 吗?或者你有资源吗?官方文档目前是空白

伊法鲁基

利用useBody

它在文档中提到:https ://v3.nuxtjs.org/guide/features/server-routes#handling-requests-with-body

你只需要通读

import { createClient } from '@supabase/supabase-js'

export default async (event) => { // can't read the parameter
  
  const body = await useBody(event)
  const SUPABASE_KEY = 'key123'
  const SUPABASE_URL = 'url.supabase.co'
  const supabase = createClient(SUPABASE_URL, SUPABASE_KEY)

  const { data, error } = await supabase
    .from('newsletter')
    .insert([{ email: body.email }]) 
  return data
};

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Nuxt中传递多个参数?

如何在 Nuxt 3 中启用 reactTransform?

在带有Express的Nuxt中,如何在保存服务器时防止重新编译

如何在Laravel 5.2的刀片服务器的选择框中添加3个参数?

vue + nuxt js-如何在服务器端的插件中访问上下文?

如何在nuxt服务器初始化中为客户端设置axios令牌?

如何在nuxt3中更改tempa元素的颜色?

如何使用目标生成路由:Nuxt 中的服务器渲染?

如何在Hive服务器操作中传递动态日期作为参数

如何在Nuxt中验证路由参数?

如何在实际服务中运行nuxt.js?

Nuxt Js:如何在 bootstrap-vue 标签 b-nav-item 中传递动态参数

如何在nuxt路由器中添加meta?

如何在 Nuxt 中访问路由器查询

如何在mobilefirst 8.0中使用Post方法为javascript API传递参数以在服务器上上传图像

如何在swift 3中将图像和视频上传到服务器

如何在ionic 3中将特定行数据发布到服务器

如何在OpenSSH SSH服务器中禁用SSLv3以避免POODLE?

如何在Alamofire 4和Swift 3中使用代理服务器

如何在开发中更改Rails 3服务器的默认端口?

如何在请求(或urllib3.response)中获取完整的服务器响应消息?

Laravel 3-如何在ubuntu服务器中安全存储用户数据

如何在服务器中接收表单参数值?

如何在崇高的文字3中传递动态参数?

如何在 VS Code 控制台中停止 Vue Nuxt 开发服务器

使用动态 slug 时,服务器端渲染如何在 Nuxt 上工作?

如何在AWS的RDS-MySql服务器中更改MySql服务器的参数

如何在kubespray部署上设置API服务器参数

如何在 v-html vuejs nuxt 中传递组件