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

Dúvida no Ex. 10 da Aula 10 - Qual é o esquema?

Após criar o model :

var mongoose = require('mongoose');

var schema = mongoose.Schema({

    foto: {
        type: String,
        required: true
    },
    nome: {
        type: String,
        required: true
    }
        ...CODIGO OMITIDO...

});

mongoose.model = ('ad', schema);

e chamá-lo na API:

var model = mongoose.model('ad');

var api = {};

api.listaAds = function(req, res){
    model.find({})
    .then(function(ads){

    }, function(error){
        console.log(error);
        res.json()
    });
};

recebo o seguinte erro:

C:\Users\Rafael\Dropbox\MyProjects\divulgabairro\app\api\ads.js:2
var model = mongoose.model('ad');
                     ^

TypeError: mongoose.model is not a function
    at Object.<anonymous> (C:\Users\Rafael\Dropbox\MyProjects\divulgabairro\app\api\ads.js:2:22)

Pensei que pode ser um problema com a versão, pois não estou usando as mesmas do curso (o projeto é diferente do alurapic)

"dependencies": {
    "consign": "^0.1.2",
    "express": "^4.13.4",
    "mongoose": "^4.4.13"
  }
7 respostas

Rafael falta você importar o mongoose dentro do seu api:

var mongoose = require('mongoose');

Para depois utilizar o .model dele:

var mongoose = require('mongoose');
var model = mongoose.model('ad');

Espero ter ajudado

Fala mestre Jedi, bom dia! Cara eu já tinha essa linha, ela só ficou fora quando copiei o texto.

Foi mal!

Bom dia Rafael, to longe de ser kkkkkk

Rafael só para fazermos um teste tente utilizar a mesma versão referente ao curso, acredito que não seja isso pois ja utilizei a versão mais recente do mongoose e não tive problemas, em todo caso teste ai só para a gente confirmar.

Poste seu express.js também.

Adiantando um express.

var express = require('express');
var app = express();
var consign = require('consign');
app.use(express.static('./public'));
consign({cwd: 'app'})
    .include('models')
    .then('api')
    .then('routes')
    .into(app);

module.exports = app;

Vou fazer esse teste aqui.

Continua dando mesmo erro mesmo instalando a versão do curso.

npm install mongoose@4.3.1 --save
solução!

Encontrei o erro:

mongoose.model = ('ad', schema);

O certo:

mongoose.model('ad', schema);

Puts é mesmo Rafael, nem percebi também.