Node.js ve MongoDB giriş yapan kullanıcının verilerini sayfaya çekmek
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
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (0)
Henüz kimse cevap yazmadı. İlk cevap yazan sen ol!