MERN

⌘K
  1. Home
  2. Docs
  3. MERN
  4. simple authentication

simple authentication

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
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

How can we help?