2017-01-27 85 views
0

我不斷收到此錯誤,指出TypeError:getVowels.find不是函數。 這是一個Swagger Express項目,學習如何創建一個mongoose函數來查找。我究竟做錯了什麼? 在此先感謝。Express TypeError對象不是函數

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); 
    }); 
}); 

回答

1

您錯誤地使用find方法。它不適用於instance of your model,但它在model本身上工作。

所以不是getVowel.find(function(err,vowels){...}),試試這個

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

謝謝,這就是我做錯了 – Bamanyi

1

如果VowelsSchema是貓鼬模型中,Model.find() method上的構造本身定義:

VowelsSchema.find(function (err, vowels) { ... }); 

而不是作爲實例的方法,getVowels


注:貓鼬的API documentation使用2 「經營者」 來區分類型的方法:

  • 週期(.),用於構造方法 - 例如Model.count()

    ModelType.count(function ...); 
    
  • 數字符號(#)爲實例方法 - 例如Model#save()

    var instance = new ModelType({ ... }); 
    instance.save(function ...); 
    
+0

由於喬納森! – Bamanyi

相關問題