Я пытаюсь найти «родной» способ отправки почтовых запросов на мой карманный сервер из моего стройного интерфейса:
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.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Способ отправки запроса на пользовательские маршруты 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.
Привет. Я не понимаю, почему это помечено как Svelte. Судя по тому, что я читал, Pocketbase — это просто REST API. Любой REST-клиент подойдет. Svelte не является средой REST.