Node.js Express TypeError对象不是函数

Node.js Express TypeError对象不是函数,node.js,express,swagger-2.0,Node.js,Express,Swagger 2.0,我一直收到这样一个错误,说TypeError:getvouels.find不是一个函数。 这是一个大摇大摆的Express项目,学习如何创建mongoose函数来查找。我做错了什么? 提前谢谢 var express = require('express'); var router = express.Router(); var mongoose = require('mongoose'); var VowelsSchema = require('../models/vowels'); //

我一直收到这样一个错误,说TypeError:getvouels.find不是一个函数。 这是一个大摇大摆的Express项目,学习如何创建mongoose函数来查找。我做错了什么? 提前谢谢

var express = require('express');
var router = express.Router();
var mongoose = require('mongoose');

var VowelsSchema = require('../models/vowels');

// connect to our database
mongoose.createConnection('mongodb://127.0.0.1:27017');

module.exports = router;

router.get('/', function(req, res) {
  var getVowels = new VowelsSchema();      

  getVowels.find(function(err, vowels) {
    if (err) {
      res.send(err);
    }
    res.json(vowels);
  });
});

如果
元音模式
是Mongoose模型,则在构造函数本身上定义:

VowelsSchema.find(function (err, vowels) { ... });
而不是作为实例的一种方法,
getvouels


注:Mongoose使用2个“运算符”来区分方法类型:

  • 构造函数方法的句点(
    ),例如

  • 示例方法的数字符号(
    ),例如


如果
元音模式
是猫鼬模型,则在构造函数本身上定义:

VowelsSchema.find(function (err, vowels) { ... });
而不是作为实例的一种方法,
getvouels


注:Mongoose使用2个“运算符”来区分方法类型:

  • 构造函数方法的句点(
    ),例如

  • 示例方法的数字符号(
    ),例如


您错误地使用了
find
方法。它不适用于模型的
实例
,但适用于
模型
本身

因此,不要使用
getvouel.find(函数(err,vouels){…})
,而是尝试以下方法

VowelsSchema.find({},function(err,vowels){//its always a good practice to ue {} in find
    if (err) {
      res.send(err);
    }
    res.json(vowels);
});

您错误地使用了
find
方法。它不适用于模型的
实例
,但适用于
模型
本身

因此,不要使用
getvouel.find(函数(err,vouels){…})
,而是尝试以下方法

VowelsSchema.find({},function(err,vowels){//its always a good practice to ue {} in find
    if (err) {
      res.send(err);
    }
    res.json(vowels);
});