Задать вопрос
penta-bongo
@penta-bongo

(Помощь с кодом)Next js и mongoose-mongoDB как подключить?

Всем привет несколько дней пытаюсь подключить базу данных к своему проекту, делаю уже в тупую по видосу Помогите разобраться, пожалуйста Подключаю mongoose и mongoDB Compass(на компьютере установлен и запущен(оттуда же и данные для подключения)

есть файл .env в котором MONGO_URI="mongodb://localhost:27017/user" (пробовал и создавать базу и писать имя от несуществующей

В папке utils создал файл connectToMongo.js
import mongoose from "mongoose";

const connectDB = async () => mongoose.connect(process.env.MONGO_URI);

export default connectDB;


Дальше папка models c файлом users.js
import { Schema, model, models } from "mongoose";

const testSchema = new Schema({
    username: {
        type: String, 
        required: true, 
        unique: true
    },
    password: {
        type: String, 
        required: true
    },
    email:{
        type: String, 
        unique: true
    }
})
const Test = models.Test || model("Test", testSchema);

export default Test;


И в папке api/test/add.js
import connectDB from "@/utils/connectToMongo";
import Test from "@/models/users";


/**
 * @param {import("next").NextApiRequest} req 
 * @param {import("next").NextApiResponse} res 
 */

export default async function handler(req, res){
    const {username, password, email} = req.body;
    console.log("Try to connect to db");
    await connectDB()
    console.log("DB is connected");
    
    console.log("Creating document");
    const test  = await Test.create(req.body);
    console.log("Created document");

    res.json({ test });
}


Запускаю проект и в thunder client делаю post localhost:3000/api/test/add Где body

{
"username": "Test_1",
"password": "123test",
"email": "ds@mail.ru"
}
Сколько вариантов не пробовал всегда идет 404 Заранее сори, если вопрос глупый, но сам изучаю и ничего не выходит
  • Вопрос задан
  • 207 просмотров
Подписаться 1 Простой 6 комментариев
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы