1
resposta

[Sugestão] TypeError: schema.virtual(...).get is not a function

Eu estava com esse erro aparecendo pra mim após importar "livros" para "app.js" :


E:\Google Drive\Alura\Nodejs\alura-node\nodemodules\mongoose\lib\helpers\schema\idGetter.js:16 schema.virtual('id').get(idGetter);

TypeError: schema.virtual(...).get is not a function at addIdGetter (E:\Google Drive\Alura\Nodejs\alura-node\nodemodules\mongoose\lib\helpers\schema\idGetter.js:16:24)


Pesquisando, vi que o "id" usado em "livroSchema" estava causando o conflito:
const livroSchema = new mongoose.Schema(
    {
        id: {type: String},    // AQUI
        titulo: {type: String, required: true},
        autor: {type: String, required: true},
        editora: {type: String, required: true},
        numeroPaginas: {type: Number}
    }
);

Então fiz essa alteração e voltou a funcionar:

const livroSchema = new mongoose.Schema(
    {
        livroId: {type: String}, //ALTEREI AQUI
        titulo: {type: String, required: true},
        autor: {type: String, required: true},
        editora: {type: String, required: true},
        numeroPaginas: {type: Number}
    }
);
1 resposta

Olá Marcelo, tudo bem?

Peço desculpa pela demora para responder o seu tópico.

Parabéns por ter resolvido o problema! É muito importante pesquisar e entender o que está acontecendo para conseguir solucionar as questões. Isso denota o seu comprometimento com os seus estudos, espero que continue assim.

E agradeço por compartilhar essa solução aqui no fórum, tenha certeza que irá ajudar outros alunos que enfrentarem a mesmo situação que você.

Caso durante os seus estudos você tenha dúvidas, recorra ao fórum, estamos aqui para ajudá-lo.

Abraços e bons estudos!