Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

VERBO "GET" RETORNANDO ARRAY VAZIO.

Olhando aqui no forum da pra perceber que o erro que estou tendo é comum. Ao contrário do Marcos e do Júnior eu nao consegui achar de onde vem esse erro. Alguém pode me ajudar? !

segue os códigos.

=> app.js

import express from "express";
import db from "./config/dbConnect.js";
import livros from "./models/Livro.js"

db.on("error", console.log.bind(console, 'Erro de conexão'));
db.once("open", () => {
   console.log('conexão com o banco feita com sucesso')
})

const app = express();

app.use(express.json());


app.get('/', (req, res) => {
   res.status(200).send('Curso de Nodejs');
})

app.get('/livros', (req, res) => {

   livros.find((err, livros) => {
      res.status(200).json(livros)
   })

})

app.get('/livros/:id', (req, res) => {
   let index = buscaLivro(req.params.id);
   res.json(livros[index]);
})

app.post('/livros', (req, res) => {
   livros.push(req.body);
   res.status(201).send('Livros cadastrado com sucesso.')
})

app.put('/livros/:id', (req, res) => {
   let index = buscaLivro(req.params.id);
   livros[index].titulo = req.body.titulo;
   res.json(livros);
})

app.delete('/livros/:id', (req, res) => {
   let { id } = req.params;
   let index = buscaLivro(id);
   livros.splice(index, 1);
   res.send(` Livro ${id} removido com sucesso.`);
})

function buscaLivro(id) {
   return livros.findIndex(livro => livro.id == id);
}

export default app;

=> dbConnect.js

import mongoose from "mongoose";

mongoose.connect("mongodb+srv://jrsrocha:********@cluster0.2iofz.mongodb.net/Alura-node");

let db = mongoose.connection;

export default db;

=> Livro.js

import mongoose from "mongoose";

const livroSchema = new mongoose.Schema(
   {
      id: { type: String },
      titulo: { type: String, required: true },
      autor: { type: String, required: true },
      editora: { type: String, required: true },
      numeroPaginas: { type: Number }
   }
);

const livros = mongoose.model('livros', livroSchema);

export default livros;
2 respostas

Olá José, tudo bem?

No primeiro momento, assim que você para de usar a lista em memória e passa a usar o banco de dados, ele está vazio, sem nenhuma informação e por isso ele retorna o array vazio. Nos vídeos subsequentes eu mostro como alterar o código para fazer a inclusão de um livro com o método POST. Você já conseguiu assistir esses vídeos? deu certo?

Se a dúvida permanecer, não deixe de nos informar por aqui.

Bons estudos! 😄

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.Bons Estudos!
solução!

Olá Jacqueline, tudo ótimo e contigo!? deu certo sim, obrigado!

ja fica a dica pra quem mais tiver essa duvida.