我的.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不是函数的错误。
答案 0 :(得分:1)
您需要模型而不是 schema 。无论您在哪里创建架构,都请更改:
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 });