1
resposta

Buscando a coleção no mongodb

Estou tentando buscar informações no banco do mongoose, eu criei a coleção chamada opcao mas no meu mongodb, está criando uma coleção opcaos

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

quando eu testo a rota no postman da o erro 404

Insira aqui a descrição dessa imagem para ajudar na acessibilidadeaqui está o meu controler e o meu model import opcao from "../Models/Opcao.js";

class OpcaoController{ static async ListaOpcao (req , res){ try{ const listaOpcao = await opcao.find({}) console.log("chegou até aqui"); res.status(200).json(listaOpcao); }catch (erro){ res.status(500).json({message:${erro.message} -falha na requisição}) } } }; export default OpcaoController;

import mongoose from "mongoose";

const opcaoSchema = new mongoose.Schema({ id:{type: mongoose.Schema.Types.ObjectId}, nome:{type:String, require:true}, descricao:{type:String} },{versionKey:false});

const opcao = mongoose.model("opcao",opcaoSchema); export default opcao;

a conexão com o banco está ocorrendo normalmente, pois quando chamo outra rota as informações aparecem normalmente.

Alguem poderia me ajudar?

1 resposta

Olá, Everton. Tudo bem?

O problema que você está enfrentando pode estar relacionado à forma como o Mongoose pluraliza automaticamente o nome das coleções. Quando você define um model com o nome "opcao", o Mongoose cria a coleção "opcaos" no MongoDB.

Para resolver o erro 404, é importante verificar se a rota está configurada corretamente no seu arquivo de rotas. verifique se a rota que chama ListaOpcao está definida corretamente no seu arquivo de rotas, algo como:

import express from 'express';
import OpcaoController from './controllers/OpcaoController.js';

const router = express.Router();

router.get('/opcao', OpcaoController.ListaOpcao);

export default router;

Além disso, verifique se você está importando e usando esse arquivo de rotas no seu arquivo principal do servidor, geralmente app.js ou server.js:

import express from 'express';
import opcaoRoutes from './routes/opcaoRoutes.js';

const app = express();

app.use(express.json());
app.use(opcaoRoutes);

app.listen(3000, () => {
  console.log('Servidor rodando na porta 3000');
});

Por último, verifique se o caminho da rota no Postman corresponde ao que você definiu no seu arquivo de rotas.

Espero ter ajudado. Qualquer dúvida manda aqui. Bons estudos.