Я создаю приложение с функциями входа и регистрации с помощью React и Express. Я использую Formik для обработки данных формы, а также для их публикации:
> const initialValues={{username:"", email:"", password:""}}
onSubmit ={ async (values, { setSubmitting }) => {
const value = values.username+'/'+values.email+'/'+values.password;
const res = await fetch(`http://localhost:5000/newuser/${value}`, {
method: 'GET',
mode: 'cors',
headers: {
'Content-Type': 'application/json',
'Access-Control-Allow-Origin': '*'
}}).then(response => response.json());
console.log(res);
values = initialValues;
setSubmitting(false);
}
Затем она отправляется в приложение express по следующему маршруту:
> app.get('/newuser/:username/:email/:password', (req, res) => {
const username = req.params.username;
const email = req.params.email;
const password = req.params.password;
let sql = `Insert into users (username, useremail, userpass) values ('${username}', '${email}', '${password}')`;
query = db.query(sql, (err, results) => {
if(err){throw err;}
res.send("New user added you can login now");
});
});
Я могу сохранить этих пользователей в базе данных, однако у меня есть следующие 2 вопроса об этом коде, которые я смог собрать из различных видео, учебных пособий, вопросы и документы:
- Относительно этой строки:
app.get ('/ newuser /: имя пользователя /: электронная почта /: пароль', ( req, res)
Это единственный способ, которым я могу получить данные формы в express, если я не включаю точки с запятой и вызываю эти значения с помощью req.params, я получаю «Ошибка 404 не найдена», потому что 3 значения пустые. Если я пытаюсь получить к ним доступ через req.body, они все еще кажутся пустыми. Я попытался JSON .stringify их, и я использую body-parser в * Приложение 1032 *. Мой вопрос: как я могу получить доступ к этим 3 значениям (имя пользователя, адрес электронной почты, пароль) с помощью req.body? Вот конкретный c способ, которым я должен отформатировать их, если я хочу получить доступ к этому маршруту из моего браузера, например http://localhost: 5000 / users? username & email & password
Как я могу отправить ответ обратно в приложение реагирования, чтобы сказать, например, что пользователь существует и пароль правильный? Я уже сделал запрос mysql, который проверяет это и обновляет переменную в express. Мне просто нужно отправить ответ, возможно, значение этой переменной, которая затем скажет, реагирует на go на страницу индекса. Однако res.send (переменная), похоже, не отправляет переменную для реакции, и форма входа остается неизменной после ее отправки.