v2.5.2
Giriş yap

Node.js ve MongoDB giriş yapan kullanıcının verilerini sayfaya çekmek

poledrops
212 defa görüntülendi

const express = require("express");
const cors = require("cors");
const MongoClient = require("mongodb").MongoClient;
const bcrypt = require("bcrypt");
const saltRounds = 10; // Salt rounds for bcrypt

// Veritabanı servisi
class DatabaseService {

constructor(collection) {
    this.collection = collection;
}

async findOne(query) {
    return this.collection.findOne(query);
}

async insertMany(docs) {
    return this.collection.insertMany(docs);
}

}

// Kullanıcı işlemleri için controller
class UserController {

constructor(databaseService) {
    this.databaseService = databaseService;
}

login = async (req, res) => {
    const { email, password } = req.body;

    try {
        const user = await this.databaseService.findOne({ email: email });

        if (user) {
            const match = await bcrypt.compare(password, user.password);
            if (match) {
                res.json("User login successful");
            } else {
                res.json("Password incorrect");
            }
        } else {
            res.json("User does not exist");
        }
    } catch (e) {
        res.json("Error during login");
    }
};

signup = async (req, res) => {
    const { email, password, username, surname, birthday, gender } = req.body;

    try {
        const userExists = await this.databaseService.findOne({ email: email });

        if (!userExists) {
            const hashedPassword = await bcrypt.hash(password, saltRounds);

            const data = {
                email: email,
                password: hashedPassword,
                username: username,
                surname: surname,
                birthday: birthday,
                gender: gender,
            };

            await this.databaseService.insertMany([data]);
            res.json("User registered successfully");
        } else {
            res.json("User already exists");
        }
    } catch (e) {
        res.json("Error during registration");
    }
};

}

// Express uygulamasını ve MongoDB bağlantısını ayarlayın
(async () => {

const app = express();
const client = new MongoClient("mongodb://localhost:27017");
await client.connect();
const db = client.db("procypnos");
const collection = db.collection("users");
const databaseService = new DatabaseService(collection);
const userController = new UserController(databaseService);

app.use(express.json());
app.use(express.urlencoded({ extended: true }));
app.use(cors());

app.post("/login", userController.login);
app.post("/signup", userController.signup);

app.listen(3000, () => {
    console.log("port connected");
});

})(); bunu kullanıcının profiline nasıl bağlayacağım adını istiyorum şimdilik giriş yapan kullanıcının

Cevap yaz
Cevaplar (0)
Henüz kimse cevap yazmadı. İlk cevap yazan sen ol!