Hii I am trying to create a basic application with features of user registration and login
in that, I created node js + express server and connected mango db too here in the registration form user input details
like name email and password are displaying the server terminal
but
the network response showing error i am using cors also
my registration form code :`
import { useState } from "react";
function Register() {
const [name, setName] = useState('');
const [email, setEmail] = useState('');
const [password, setPassword] = useState('');
const [error, setError] = useState('');
async function Registeruser(event) {
event.preventDefault();
const response = await fetch('http://localhost:1337/api/register', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
name,
email,
password
})
});
const data = await response.json();
if (response.ok) {
// Registration successful
console.log('Registration successful');
} else {
// Registration failed
setError(data.error || 'An error occurred');
}
}
return (
<>
<div className="maindiv">
<h2>Register</h2>
<p></p>
<form onSubmit={Registeruser}>
<input
value={name}
onChange={(e) => setName(e.target.value)}
placeholder="Your Name"
/>
<p></p>
<input
value={email}
onChange={(e) => setEmail(e.target.value)}
placeholder="Email"
/>
<p></p>
<input
value={password}
onChange={(e) => setPassword(e.target.value)}
placeholder="Password"
/>
<br />
<input type="submit" value="Register" />
</form>
{error && <p className="error">{error}</p>}
</div>
</>
);
}
export default Register;
and server index.js code
const express = require('express');
const app = express();
const mongoose = require('mongoose');
const cors = require('cors');
const User = require('./models/user.model');
app.use(cors()); // Use the cors middleware
app.use(express.json());
mongoose.connect('mongodb+srv://ganeshnandhipati161999:Ganesh123%40%23%24@cluster1ganesh.n9trq4x.mongodb.net/test?retryWrites=true&w=majority', {
useNewUrlParser: true,
useUnifiedTopology: true,
})
app.post('/api/register', async (req, res) => {
console.log(req.body)
try {
await User.create({
name: req.body.name,
email: req.body.email,
password: newPassword,
})
res.json({ status: 'ok' });
} catch (err) {
res.json({ status: 'error', error: 'Duplicate email' })
}
})
app.post('/api/login', async (req, res) => {
const user = await User.findOne({
email: req.body.email,
password: req.body.password,
});
if (user) {
return res.json({ status: 'ok', user: true });
} else {
return res.json({ status: 'error', user: false });
}
});
app.listen(1337, () => {
console.log('Server started on 1337');
});
```
why it showing like these
I am expecting user registration and a successful registration and login and details will store in mongo db database