How to Create a Responsive Navigation Bar (navbar) Using HTML, CSS, and JavaScript
HTML |
2025-02-21 11:54:36
A User Management Interface that lets you:
Submit a form to create a new user
View all users in a list
Open your terminal and run:
npx create-react-app mongodb-users-client
cd mongodb-users-client
npm install axios
mongodb-users-client/
│
├── src/
│ ├── App.js
│ ├── components/
│ │ ├── UserForm.js
│ │ └── UserList.js
src/components/UserForm.js
import React, { useState } from 'react';
import axios from 'axios';
const UserForm = ({ onUserAdded }) => {
const [form, setForm] = useState({ name: '', email: '' });
const handleChange = e => {
setForm({ ...form, [e.target.name]: e.target.value });
};
const handleSubmit = async e => {
e.preventDefault();
try {
await axios.post('http://localhost:5000/api/users', form);
onUserAdded(); // refresh list
setForm({ name: '', email: '' });
} catch (err) {
alert('Error adding user');
}
};
return (
<form onSubmit={handleSubmit}>
<h2>Add User</h2>
<input
type="text"
name="name"
value={form.name}
onChange={handleChange}
placeholder="Name"
required
/>
<input
type="email"
name="email"
value={form.email}
onChange={handleChange}
placeholder="Email"
required
/>
<button type="submit">Add</button>
</form>
);
};
export default UserForm;
src/components/UserList.js
import React, { useEffect, useState } from 'react';
import axios from 'axios';
const UserList = ({ refresh }) => {
const [users, setUsers] = useState([]);
useEffect(() => {
axios.get('http://localhost:5000/api/users')
.then(res => setUsers(res.data))
.catch(err => console.log(err));
}, [refresh]);
return (
<div>
<h2>All Users</h2>
{users.map(user => (
<div key={user._id}>
<strong>{user.name}</strong> — {user.email}
</div>
))}
</div>
);
};
export default UserList;
src/App.js
import React, { useState } from 'react';
import UserForm from './components/UserForm';
import UserList from './components/UserList';
function App() {
const [refresh, setRefresh] = useState(false);
const triggerRefresh = () => setRefresh(!refresh);
return (
<div style={{ padding: '20px' }}>
<h1>MongoDB User Manager</h1>
<UserForm onUserAdded={triggerRefresh} />
<hr />
<UserList refresh={refresh} />
</div>
);
}
export default App;
In the React project directory:
npm start
Then open: http://localhost:3000
To allow frontend (port 3000) to access backend (port 5000), modify your server.js
:
const cors = require('cors');
app.use(cors());
Install it:
npm install cors
A working Node.js + MongoDB backend
A React frontend to interact with it
Full CRUD basics ready to expand (update/delete next)