I work on an application, I have to manage the frontend part with vue.js and the backend part with express.js and MySQL.
I need to handle requests in VueJS: Fetch API.
- The page in question is the registration.
I want The form data will be validated by the front-end before being sent to the back-end.
Code :
<script>
export default {
name: "FormSuscribe",
data() {
return {
first_name: "",
email: "",
password_key: "",
};
},
methods: {
signup() {
fetch("http://localhost:3000/api/auth/signup", {
method: "POST",
//--Header--//
headers: {
Authorization: "Bearer ",
Accept: "application/json",
"Content-Type": "application/json",
},
//---Body--//
body: JSON.stringify({
name: this.name,
email: this.email,
password: this.password,
}),
});
},
},
};
</script>
<template>
<main>
<section class="form my-4 mx-5">
<div class="container">
<div class="row">
<div class="col-lg-5 g-0">
<img
src="@/assets/signup-image.jpg"
class="img-fluid first-img"
alt="Office"
/>
</div>
<div class="col-lg-7 px-5 pt-5">
<form method="post" @submit="signup">
<div class="form-row">
<div class="col">
<input
id="first_name"
name="username"
placeholder="Nom"
class="my-3 p-2"
v-model="first_name"
/>
</div>
</div>
<div class="form-row">
<div class="col">
<input
type="email"
id="email"
name="email"
class="form-group my-3 p-2"
placeholder="sarah@gmail.com"
v-model="email"
/>
</div>
</div>
<div class="form-row">
<div class="col">
<input
type="password"
id="password"
name="password"
placeholder="**********"
class="my-3 p-2"
v-model="password_key"
/>
</div>
</div>
<div class="form-row">
<div class="col-lg-4">
<button type="button" class="btn fw-bold">register</button>
<a href="">Forgot password</a>
<p>
You already have an account <a href="#">Connect</a>
</p>
</div>
</div>
</form>
</div>
</div>
</div>
</section>
<div class="container text-center">
<img
src="@/assets/icon-left-font-black.webp"
class="img-fluid col-lg-2 col-sm-2"
alt="Brand "
/>
</div>
</main>
</template>