Как отправлять запросы на пользовательские маршруты Pocketbase, используя SDK javascript Pocketbase?

Я пытаюсь найти «родной» способ отправки почтовых запросов на мой карманный сервер из моего стройного интерфейса:

main.go:

    app.OnBeforeServe().Add(func(e *core.ServeEvent) error {
        e.Router.AddRoute(echo.Route{
            Method: http.MethodPost,
            Path: "/api/myRoute",
            Handler: func(c echo.Context) error {
                // custom logic here: compute custom_value using parameters
                custom_value := "cool_value"
                return c.String(200, custom_value)
            },
        })
        return nil
    })

Я хотел бы сделать что-то похожее на следующее:

Фронтенд.тс:

  onMount(async () => {
    // ask server for information based on a variable: example
    const example = "test";
    const example_reply = await pb.route(POST, '/api/myRoute', /*here, I would have to specify the fact that example is a form value of the POST request*/ example);
    // use example_reply
    if (example_reply === "cool_value") {
       console.info('got what I expected');
    } else {
       console.info('wrong!!!');
    }
  }

Существует ли функция, которую я ищу, или мне следует использовать необработанный JS для получения информации из моих пользовательских маршрутов?

Я попытался использовать необработанный JavaScript для отправки почтового запроса, который работает, но не использует пакет Pocketbase. :

const response = await fetch('/api/example', {
        method: 'POST',
        headers: {
          'Content-Type': 'application/json',
        },
        body: JSON.stringify({ example: "test" }), // Convert the input to JSON
      });

Привет. Я не понимаю, почему это помечено как Svelte. Судя по тому, что я читал, Pocketbase — это просто REST API. Любой REST-клиент подойдет. Svelte не является средой REST.

José Ramírez 23.09.2023 10:30

Хорошая мысль, я убрал тег svelte.

Salad Iche 25.09.2023 00:27

чувствует себя неоптимально"... что заставляет тебя так думать? Все официальные примеры выглядят одинаково.

Phil 25.09.2023 00:56

Правда, я имел в виду, что должен быть способ сделать это с помощью пакета Pocketbase.

Salad Iche 25.09.2023 13:59
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
4
52
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Способ отправки запроса на пользовательские маршруты Pocketbase с использованием JavaScript - это тот, который упоминается в вопросе, с некоторыми изменениями:

  const formData = new URLSearchParams();
  formData.append('custom_param', 'custom_param_value');

  const response = await fetch(pb.baseUrl + '/api/customRoute', {
    method: 'POST',
    headers: {
      'Content-type': 'application/x-www-form-urlencoded',
    },
    body: formData.toString(),
  });
  if (!response.ok)
  {
    throw new Error('');
  }
  const data: string = await response.text();

Действительно, пользовательские маршруты Pocketbase не предназначены для доступа через SDK на стороне клиента, а скорее позволяют другим компонентам вашего проекта получать доступ к информации и логике на стороне сервера БЕЗ использования SDK.

Другие вопросы по теме