1
resposta

Invalid module

não entendi qual foi erro aqui nesse caso
print do terminal
código:

import livro from "...models/Livro.js";

class LivroController {

static async listarLivros (req, res) {
    const listaLivros = await livro.find({});
    res.status(200).json(listaLivros);
}

static async cadastraLivro (req, res) {
    try{
        const novoLIvro = await livro.create(req.body)
        res.status(201).json({ message: "Criado com sucesso!", livro: novoLIvro});
    } catch (erro) {
        res.status(500).json({ message: `${erro.message} - falha ao cadastrar livro`})
    }
}

};

export default LivroController;
1 resposta

Olá, Estevan, como vai?

Nesse caso o erro está ligado ao caminho informado no import do model. No trecho:

import livro from "...models/Livro.js";

o Node não reconhece "…models/Livro.js" como um especificador de módulo válido. Esses três pontos não representam um caminho existente. Em imports relativos é necessário usar ./ ou ../ para indicar a navegação entre pastas.

Por exemplo, considerando uma estrutura comum do projeto:

src
 ├─ controllers
 │   └─ livroController.js
 └─ models
     └─ Livro.js

o correto seria:

import Livro from "../models/Livro.js";

Se o controller estivesse dois níveis abaixo, aí seria:

import Livro from "../../models/Livro.js";

Ajustando o caminho do import o Nodemon deixa de encerrar a aplicação, pois o módulo passa a ser localizado corretamente.

Qualquer outra dúvida, o fórum está à disposição.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!