Express TypeError 对象不是一个函数
Express TypeError object is not a function
我不断收到此错误,提示类型错误:getVowels.find 不是函数。
这是一个 swagger 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);
});
});
如果 VowelsSchema
是 Mongoose 模型,Model.find()
method 是在构造函数本身上定义的:
VowelsSchema.find(function (err, vowels) { ... });
而不是作为实例的方法,getVowels
。
注:Mongoose的API documentation使用2个"operators"区分方法的类型:
构造方法的句点 (.
) – 例如Model.count()
ModelType.count(function ...);
实例方法的数字符号 (#
) – 例如Model#save()
var instance = new ModelType({ ... });
instance.save(function ...);
您错误地使用了 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);
});
我不断收到此错误,提示类型错误:getVowels.find 不是函数。 这是一个 swagger 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);
});
});
如果 VowelsSchema
是 Mongoose 模型,Model.find()
method 是在构造函数本身上定义的:
VowelsSchema.find(function (err, vowels) { ... });
而不是作为实例的方法,getVowels
。
注:Mongoose的API documentation使用2个"operators"区分方法的类型:
构造方法的句点 (
.
) – 例如Model.count()
ModelType.count(function ...);
实例方法的数字符号 (
#
) – 例如Model#save()
var instance = new ModelType({ ... }); instance.save(function ...);
您错误地使用了 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);
});