Make sure to set your DATABASE_URI
environment variable before running the application. Install the required packages using:
npm install express body-parser mongoose
database.js
models/user.js
routes/auth.js
index.js
// database.js
const mongoose = require('mongoose');
const connectToDB = async () => {
try {
await mongoose.connect(process.env.DATABASE_URI, {
useNewUrlParser: true,
useUnifiedTopology: true,
});
console.log('Database Connected');
} catch (error) {
console.error('Database Connection Error:', error.message);
process.exit(1);
}
};
module.exports = { connectToDB };
// models/user.js
const mongoose = require('mongoose');
const userSchema = new mongoose.Schema({
username: { type: String, required: true },
password: { type: String, required: true },
});
const User = mongoose.model('User', userSchema);
module.exports = User;
// routes/auth.js
const express = require('express');
const router = express.Router();
const User = require('../models/user');
// Signup
router.post('/signup', async (req, res) => {
const { username, password } = req.body;
try {
const user = new User({ username, password });
await user.save();
res.status(201).json({ message: 'User created successfully' });
} catch (error) {
console.error(error);
res.status(500).json({ message: 'Internal server error' });
}
});
// Login
router.post('/login', async (req, res) => {
const { username, password } = req.body;
try {
const user = await User.findOne({ username, password });
if (user) {
res.status(200).json({ message: 'Login successful' });
} else {
res.status(401).json({ message: 'Invalid credentials' });
}
} catch (error) {
console.error(error);
res.status(500).json({ message: 'Internal server error' });
}
});
module.exports = router;
// index.js
const express = require('express');
const bodyParser = require('body-parser');
const { connectToDB } = require('./database');
const app = express();
const PORT = 3000;
// Middleware
app.use(bodyParser.json());
// Routes
app.use('/auth', require('./routes/auth'));
app.listen(PORT, () => {
console.log(`Server is running on http://localhost:${PORT}`);
// Connect to MongoDB
connectToDB();
});
Now, you can run your application using:
node index.js