Untitled
unknown
plain_text
5 months ago
1.8 kB
2
Indexable
const express = require('express'); const bcrypt = require('bcryptjs'); const jwt = require('jsonwebtoken'); const mongoose = require('mongoose'); const dotenv = require('dotenv'); const cors = require('cors'); dotenv.config(); const app = express(); app.use(express.json()); app.use(cors()); // MongoDB connection (replace with your MongoDB URI) mongoose.connect(process.env.MONGO_URI, { useNewUrlParser: true, useUnifiedTopology: true }) .then(() => console.log('MongoDB connected')) .catch(err => console.log(err)); // User Schema const userSchema = new mongoose.Schema({ email: { type: String, required: true, unique: true }, password: { type: String, required: true } }); const User = mongoose.model('User', userSchema); // Register API app.post('/api/register', async (req, res) => { const { email, password } = req.body; try { // Check if the user already exists const existingUser = await User.findOne({ email }); if (existingUser) { return res.status(400).json({ message: 'User already exists' }); } // Hash the password const salt = await bcrypt.genSalt(10); const hashedPassword = await bcrypt.hash(password, salt); // Create a new user const newUser = new User({ email, password: hashedPassword }); await newUser.save(); // Generate JWT const token = jwt.sign( { userId: newUser._id, email: newUser.email }, process.env.JWT_SECRET, { expiresIn: '1h' } ); res.status(201).json({ message: 'User registered successfully', token }); } catch (err) { res.status(500).json({ message: 'Error registering user' }); } }); // Start the server const PORT = process.env.PORT || 5000; app.listen(PORT, () => console.log(`Server running on port ${PORT}`));
Editor is loading...
Leave a Comment