Моя функция .find не вызывает мою базу данных - PullRequest
0 голосов
/ 05 июля 2019

Моя функция .find не работает.Он не вызывает мою базу данных и возвращает ошибку:

TypeError: beerSchema.findOne is not a function

Мои другие страницы отображаются нормально, это просто страница, на которой я пытаюсь загрузить базу данных.

app.get("/beers", function(req, res){
  //Get all beers
  beerSchema.find({}, function(err, beers){
    if (err) {
      console.log(err);
    } else {
      res.render("beers", {beers: beers});
    }
  });
});

BeerSchema:

var beerSchema = new mongoose.Schema({ 
    name:String, 
    abv: Number, 
    type:String, 
    Brewery:String, 
    Image:String 
}); 
var beer = mongoose.model("Beer", beerSchema );

Я получаю ошибку, что .find не является функцией.

1 Ответ

1 голос
/ 05 июля 2019

Вам нужна модель , а не схема . Где бы вы не создавали свою схему, измените это:

module.exports = beerSchema;

К этому:

module.exports = mongoose.model("Beer", beerSchema);

Затем импортируйте это в файл приложения:

const { Beer } = require("./beer.js");

И используйте Beer:

Beer.find({}, function(err, beers) {...});

Примечание: вместо этого обозначение ES6 означает:

res.render("beers", { beers: beers });

Вы можете просто сделать:

res.render("beers", { beers });
...