#javascript #reactjs #next.js #fetch
Вопрос:
не знаете, что я делаю не так?
Я становлюсь неопределенным при попытке загрузить данные моей формы в свою базу данных, данные поступают в API, не определенный, но когда я передаю их функции, она печатает то, что я хочу отправить в API в моем обработчике отправки.
export const Quote = () =gt; { const [formIsValid, setFormIsValid] = useState(false); //----------------------------_FORM VALIDATION------------------------------------ const { value: firstName, inputBlurChangeHandler: firstNameBlur, isValid: firstNameValid, hasError: firstNameInputHasError, valueChangeHandler: firstNameChangeHandler, reset: resetFirstName, } = useInput((value) =gt; value.trim() !== ""); **hooks amp; useEffect removed to shorten question they are same as above but different names** console.log(formIsValid, "FORM IS VALID"); const formSubmitHandler = async (event) =gt; { event.preventDefault(); //UNDEFINEDS await fetch("api/dbhandler", { method: "POST", body: { firstname: firstName, secondname: secondName, street: streetAddress, phone: phoneNumber, email: emailAddress, postal: postalCode, about: quoteDescription, }, headers: { "Content-Type": `text/plain`, }, }); };
API приходит как неопределенный в req. тело, но если я войду в консоль, значения обработчика отправки будут переданы функции, не уверен, что я делаю неправильно
import { supabase } from "../../utils/supabaseClient"; const supabaseApiHandler = async (req, res) =gt; { console.log(req.body.firstname); if (req.method === "POST") { const firstname = req.body.firstname; const secondname = req.body.secondname; const email = req.body.email; const street = req.body.street; const postal = req.body.postal; const phone = req.body.phone; const about = req.body.about; const { data, error } = await supabase.from("quotes").insert([ { firstname, secondname, email, street, postal, phone, about, }, ]); } res.status(200).json({ name: "test" }); }; export default supabaseApiHandler;
Комментарии:
1. Попробуйте использовать
body: JSON.stringify(bodyData)
.2. не повезло с этим 🙁
3. Возможно, это связано с тем, что вы также сообщаете серверу, что ваш контент не является JSON, вы говорите ему, что это текст. Измените его на
"Content-Type": "application/json"
.4. исправил это, я сделал
const reqBody = { firstname: firstName, secondname: secondName, ect.... };
5.
await fetch(
api/dbhandler, { method: "POST", body: JSON.stringify(reqBody),