NodeJs Mongoose proje hatası

scorpionsx

Centipat
Katılım
20 Mayıs 2022
Mesajlar
82
Daha fazla  
Cinsiyet
Kadın
Backend projesi geliştirirken bu hatayı alıp duruyorum. Nerede yanlış yaptığımı anlamadım.

JavaScript:
const express = require("express");
const app = express();
const mongoose = require("mongoose");
const dotenv = require("dotenv");
const helmet = require("helmet");
const morgan = require("morgan");
const userRoute = require("./routes/users");
const authRoute = require("./routes/auth");

dotenv.config();

mongoose.set("strictQuery", false);
mongoose.connect(
  process.env.MONGO_URL,
  {
    useNewUrlParser: true,
    useUnifiedTopology: true,
  },
  () => {
    console.log("Connected to MongoDB");
  }
);

//middleware
app.use(express.json());
app.use(helmet());
app.use(morgan("common"));

app.use("/api/users", userRoute);
app.use("/api/auth", authRoute);

app.listen(8800, () => {
  console.log("Backend server is running!");
});
Kod:
.env
MONGO_URL  = mongodb+srv://<username>:<password>@cluster0.h4my1qb.mongodb.net/?social=true&w=majority&myApp=cluster0
Kod:
const router = require("express").Router();
const User = require("../models/User");

//REGISTER
router.get("/register", async (req, res) => {
  const user = await new User({
    username: "John",
    email: "[email protected]",
    password: "123456",
  });
  await user.save();
  res.send("ok");
});

module.exports = router;
 

Dosya Ekleri

  • Ekran görüntüsü 2024-04-29 103931.png
    Ekran görüntüsü 2024-04-29 103931.png
    46,3 KB · Görüntüleme: 15
  • Ekran görüntüsü 2024-04-29 104748.png
    Ekran görüntüsü 2024-04-29 104748.png
    70,3 KB · Görüntüleme: 17
Veri tabanına bağlantı sağlanamadığı için hata alıyor olabilirsiniz. Bağlantı esnasında oluşacak hatayı yakalamak için callback fonksiyonuna bir parametre verin ya da callback yerine then ve catch yapısını kullanın.
 
Veri tabanına bağlantı sağlanamadığı için hata alıyor olabilirsiniz. Bağlantı esnasında oluşacak hatayı yakalamak için callback fonksiyonuna bir parametre verin ya da callback yerine then ve catch yapısını kullanın.

Kullandım oldu teşekkür ederim. Ama daha sonra şöyle bir hata aldım.
 

Dosya Ekleri

  • Ekran görüntüsü 2024-04-30 124209.png
    Ekran görüntüsü 2024-04-30 124209.png
    149,6 KB · Görüntüleme: 16
Muhtemelen username alanını benzersiz (unique) olarak ayarlamışsınız ve "John" kullanıcı adı ile ikinci bir kayıt yapmaya çalışıyorsunuz.
Evet unique olarak ayarladım ama tam olarak anlamadım nasıl ikinci defa kayıt yapmaya çalışıyorum ? Bu arada unique kısmı kaldırdım ve düzeldi teşekkür ederim.
 
Son düzenleme:
Evet unique olarak ayarladım ama tam olarak anlamadım nasıl ikinci defa kayıt yapmaya çalışıyorum ? Bu arada unique kısmı kaldırdım ve düzeldi teşekkür ederim.
Bir alanı benzersiz (unique) olarak ayarladığınızda o alanın collection'daki tüm veriler için farklı değer alacağını taahhüt ediyorsunuz. Username alanını benzersiz yaptığınız zaman aynı kullanıcı adına sahip veriler oluşturamazsınız. Aldığınız hatadan, username alanı John olan bir kaydın daha önce yapıldığı anlaşılıyor.
 
Bir alanı benzersiz (unique) olarak ayarladığınızda o alanın collection'daki tüm veriler için farklı değer alacağını taahhüt ediyorsunuz. Username alanını benzersiz yaptığınız zaman aynı kullanıcı adına sahip veriler oluşturamazsınız. Aldığınız hatadan, username alanı John olan bir kaydın daha önce yapıldığı anlaşılıyor.
Anladım teşekkür ederim açıklamanız için.
 

Geri
Yukarı