【问题标题】:My .find function is not calling my database我的 .find 函数没有调用我的数据库
【发布时间】:2019-07-05 06:18:51
【问题描述】:

我的 .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 不是函数的错误。

【问题讨论】:

  • 请分享beerSchema代码。
  • var beerSchema = new mongoose.Schema({ name:String, abv: Number, type:String, Brewery:String, Image:String }); var beer = mongoose.model("Beer", beerSchema );

标签: javascript node.js function express mongoose-schema


【解决方案1】:

你需要的是 model 而不是 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 });

【讨论】:

    猜你喜欢
    • 2013-11-13
    • 2017-10-07
    • 1970-01-01
    • 1970-01-01
    • 2017-09-04
    • 1970-01-01
    • 2021-08-17
    • 2016-11-20
    • 2022-10-23
    相关资源
    最近更新 更多