Node.js findByID不是一个函数

Node.js findByID不是一个函数,node.js,express,mongoose,Node.js,Express,Mongoose,列表项 var express = require("express"); var app = express(); var Mongoose = require("Mongoose"); Mongoose.connect("mongodb://localhost/YelpCamp_app"); var YelpCampSchema = new Mongoose.Schema({ name:String, image:String, description:String });

列表项

var express = require("express");
var app = express();
var Mongoose = require("Mongoose");

Mongoose.connect("mongodb://localhost/YelpCamp_app"); 

var YelpCampSchema = new Mongoose.Schema({
  name:String,
  image:String,
  description:String
});

var YelpCamp = Mongoose.model("YelpCamp",YelpCampSchema);

app.get('/campgrounds/:id',function(req,res){
  YelpCamp.findByID(req.params.id, function(err,campground) {
    if(err) {
      console.log("error");
    } else {
      res.render("show.ejs");
    }
  });
});

我得到的错误是findByID不是函数

findByID
不是
findByID

app.get('/campgrounds/:id',function(req,res){
  YelpCamp.findById(req.params.id, (err,campground) => {
    if(err) {
      console.log("error");
    } else {
      res.render("show.ejs");
    }
  });
});

更多信息请参见:

您应该要求使用“猫鼬”而不是“猫鼬”。之后,您可以使用findById检索单个YelpCamp,如下所示:

var express = require("express");
    var app = express();
    const mongoose = require('mongoose');
    mongoose.connect("mongodb://localhost/YelpCamp_app"); 
    const YelpCampSchema  = mongoose.Schema({
        name:String,
      image:String,
      description:String
    });
    var YelpCamp = mongoose.model("YelpCamp",YelpCampSchema);
    app.get('/campgrounds/:id',function(req,res){
    YelpCamp.findById(req.params.id)
        .then(data => {
            if(!data) {
                console.log("data not found");            
            }
            res.render("show.ejs");
        }).catch(err => {

          console.log("error");

        });
    });

var mongoose=require('mongoose')
。这不是大写的
M
。没有解释的答案有什么意义?我们应该猜你改变了什么吗?@jfriend00他改变了他说的“猫鼬”而不是“猫鼬”。无论如何,解决方案是找到的,而不是像张当所说的那样找到的