Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Por que meu get está retornando um array vazio?

Estou começando a linkar o projeto com o banco de dados, mas não está retornando nada neste get:

app.get("/pessoas", async (req, res) => {
  const listaPessoas = await pessoas.find({});
  console.log(listaPessoas);
res.status(200).json(listaPessoas);
});

Código completo:

import express from "express"
import conectarNaDatabase from "./config/dbConnect.js";
import pessoas from "./models/Pessoa.js";

const conexao = await conectarNaDatabase();

conexao.on("error", (erro) => {
    console.error("erro de conexão", erro)
});

conexao.once("open", () => {
    console.log("conexão com o banco feita com sucesso")
});

const app = express(); 

app.use(express.json());

function buscarindice(id){

    return pessoas.findIndex( pessoas => {
        return pessoas.id === Number(id)
    })
};

app.get("/pessoas", async (req, res) => {
  const listaPessoas = await pessoas.find({});
  console.log(listaPessoas);
res.status(200).json(listaPessoas);
});

app.get("/:id", (req, res) => {
    const id = req.params.id;
    let encontrado = buscarPeloId(id)
    res.status(200).send(encontrado);
});

app.post("/pessoas", (req, res) => {
    pessoas.push(req.body);
    res.status(201).send("Pessoa cadastrada");
});

app.put("/pessoa/:id", (req, res) => {

    const indice = buscarindice(req.params.id); 
    pessoas[indice] = req.body; 
    res.status(200).send("Alterado");

});

app.delete("/pessoa/:id", (req, res) => {

    const indice = buscarindice(req.params.id); 
    pessoas.splice(indice, 1); 
    res.status(200).send("Pessoa deletada com sucesso")

});

export default app;

Model:

import { MongoOIDCError } from "mongodb";
import mongoose from "mongoose";

// definindo estrutura e propriedades do documento
const pessoasSchema = new mongoose.Schema({
    id: {type: mongoose.Schema.Types.ObjectId},
    nome : {type: String, required: true},
    cargo : {type: String},
    idade : {type: Number},
    qtdcriancas: {type: Number}
}, {versionKey: false});

const pessoas = mongoose.model("pessoas", pessoasSchema);

export default pessoas; 

Conexão com o banco de dados:

import mongoose, { mongo } from "mongoose";

async function conectarNaDatabase (){
    mongoose.connect("mongodb+srv://vgabrieldev:99253325Hh*@cluster0.jhucvuq.mongodb.net/registro?retryWrites=true&w=majority&appName=Cluster0");

    return mongoose.connection
};

export default conectarNaDatabase;

Coleção do MongoDB: Coleção no MongoDB

1 resposta
solução!

Resolvido: eu errei no nome na string de conexão com o banco de dados