Nuxt Supabase Как решить ошибку 500 «client.from is not a function»?

Ссылка скопирована
1 ответ

Пишу приложение на Nuxt. Не могу вывести список юзеров с таблицы users в Supabase. Появляется ошибка 500
"client.from is not a function"
(P.s я юзаю модуль @nuxtjs/supabase)

/server/api/users.ts

import { serverSupabaseClient } from '#supabase/server'  export default eventHandler(async (event) => {     const client = serverSupabaseClient(event)     const { data } = await client.from('users').select("*")     return { users: data } })

import { serverSupabaseClient } from '#supabase/server' export default eventHandler(async (event) => { const client = serverSupabaseClient(event) const { data } = await client.from('users').select("*") return { users: data } })

package.json

{   "name": "online-shop",   "private": true,   "type": "module",   "scripts": {     "build": "nuxt build",     "dev": "nuxt dev",     "generate": "nuxt generate",     "preview": "nuxt preview",     "postinstall": "nuxt prepare"   },   "dependencies": {     "@nuxtjs/supabase": "^1.2.0",     "@supabase/supabase-js": "^2.41.1",     "nuxt": "^3.11.1",     "vue": "^3.4.21",     "vue-router": "^4.3.0"   } }

{ "name": "online-shop", "private": true, "type": "module", "scripts": { "build": "nuxt build", "dev": "nuxt dev", "generate": "nuxt generate", "preview": "nuxt preview", "postinstall": "nuxt prepare" }, "dependencies": { "@nuxtjs/supabase": "^1.2.0", "@supabase/supabase-js": "^2.41.1", "nuxt": "^3.11.1", "vue": "^3.4.21", "vue-router": "^4.3.0" } }

nuxt.config.ts

import { name } from './package.json'  export default defineNuxtConfig({   devtools: { enabled: true },   modules: ['@nuxtjs/supabase'],   supabase: { redirect: false },   app: {     head: {       title: name,       link: [         { rel: 'stylesheet', href: 'https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css', integrity: "sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC", crossorigin: "anonymous" },       ]     },   }, })

import { name } from './package.json' export default defineNuxtConfig({ devtools: { enabled: true }, modules: ['@nuxtjs/supabase'], supabase: { redirect: false }, app: { head: { title: name, link: [ { rel: 'stylesheet', href: 'https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css', integrity: "sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC", crossorigin: "anonymous" }, ] }, }, })

.env

SUPABASE_URL="<supabase_url>" SUPABASE_KEY="<supabase_key>"

SUPABASE_URL="<supabase_url>" SUPABASE_KEY="<supabase_key>"

Помогите, пожалуйста.

Дополнительно:

serverSupabaseClient возвращает Promise, нужно добавить await

import { serverSupabaseClient } from '#supabase/server'  export default eventHandler(async (event) => {     const client = await serverSupabaseClient(event)     const { data } = await client.from('users').select("*")     return { users: data } })

import { serverSupabaseClient } from '#supabase/server' export default eventHandler(async (event) => { const client = await serverSupabaseClient(event) const { data } = await client.from('users').select("*") return { users: data } })

  • ошибка пропала, но вот данные с базы не выводятся
    {	   "users":	[] }

    { "users": [] }

  • хоть таблица в базе есть. и данные в ней тоже заполнены
  • pshavlenkov, точно не подскажу, но вроде проблема может быть в RLS, которые по-умолчанию включены. Этот механизм позволяет ограничивать доступ на операции с таблицами по некоторым правилам, например разрешать доступ только аутентифицированным пользователям. Попробуйте либо отключить его для ваших таблиц, либо настроить правила

    Nuxt Supabase Как решить ошибку 500 «client.from is not a function»?

  • Nuxt Supabase Как решить ошибку 500 «client.from is not a function»?

    Проблема решена! Нужно было действительно выключить RLS. Спасибо!

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Никита Орлов Ответ

Для решения ошибки "client.from is not a function" при использовании Nuxt с Supabase, необходимо убедиться, что вы правильно настроили Supabase и правильно используете его методы.

Во-первых, убедитесь, что вы правильно установили и настроили Supabase в вашем проекте Nuxt. Для этого вы должны импортировать Supabase и создать экземпляр SupabaseClient в вашем файле, где вы будете использовать Supabase. Например:

import { createClient } from '@supabase/supabase-js'
 
const supabaseUrl = 'YOUR_SUPABASE_URL'
const supabaseKey = 'YOUR_SUPABASE_KEY'
 
export const supabase = createClient(supabaseUrl, supabaseKey)

import { createClient } from '@supabase/supabase-js' const supabaseUrl = 'YOUR_SUPABASE_URL' const supabaseKey = 'YOUR_SUPABASE_KEY' export const supabase = createClient(supabaseUrl, supabaseKey)

Убедитесь, что вы правильно передали URL и ключ Supabase в createClient.

Затем, когда вы используете Supabase в своем коде, убедитесь, что вы вызываете методы правильно. Например, если вы хотите выполнить запрос к базе данных, используйте метод .from('table_name'):

const { data, error } = await supabase.from('table_name').select('*')

const { data, error } = await supabase.from('table_name').select('*')

Если вы продолжаете получать ошибку "client.from is not a function", убедитесь, что вы правильно импортировали и создали экземпляр SupabaseClient, и что вы используете методы Supabase правильно.

Также, убедитесь, что у вас установлены все зависимости и пакеты Supabase, и что ваш сервер Supabase работает корректно.

Если после всех этих шагов ошибка все еще возникает, попробуйте обновить версии Supabase и Nuxt до последних доступных.

Надеюсь, эти рекомендации помогут вам решить проблему с ошибкой "client.from is not a function" при использовании Nuxt с Supabase.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно