Как правильно указать путь при get запросе?
Есть 2 Schema MongoDB.
Для регистрации пользователей и их персональным списком задач, который ссылается на Todo:
import mongoose from "mongoose";
const {Schema, Types, model} = mongoose;
const userSchema = new Schema({
email: { type: String, required: true, unique: true },
password: { type: String, required: true },
todos: [{ type: Types.ObjectId, ref: 'Todo' }]
})
export default model('User', userSchema);
И непосредственно сам список задач, который имеет своего User'a в поле owner:
import mongoose from "mongoose";
const {Schema, Types, model} = mongoose;
const todoSchema = new Schema({
owner: {type: Types.ObjectId, ref: 'User'},
title: {type: String, required: true},
complete: false
})
export default model('Todo', todoSchema);
Вопрос:
Как мне правильно запросить список задач пользователя, который уже прошел авторизацию по JWT Token'у при обращении к серверу?
Мой вариант выглядел вот так, но он не работает:
import {Router} from "express";
import Todo from '../models/todo.js'
export const todoRouter = new Router();
todoRouter.get('/', async (request, response) => {
try {
const {userId} = request.query;
const todos = await new Todo.find({owner: userId});
response.json(todos);
} catch (error) {
response.status(500).json({message: 'Ошибка при запросе списка задач', error});
console.log(error);
}
})
Ответы (1 шт):
Автор решения: Hat
→ Ссылка
const todos = await Todo.find({owner: userId});
Попробуйте не использовать new. New создаёт новое, а вы ничего не создаёте. И ещё не совсем понятно, зачем вам в схеме пользователя todos, когда у вас и так у каждого todo есть поле пользователь.