Mongoose Model.find不是一个函数吗?

花了几个小时试图弄清楚这一点 – 我正在添加一个新的模型到我的应用程序,但它与“TypeError:List.find不是一个函数”失败。 我有另一个模型,项目,这是build立在相同的方式,工作正常。 事情似乎在路线失败,但它的作品,如果我把它连接到项目模型。 我是否错误地声明了Schema? 我需要在mongo中初始化模型吗?

模型

var mongoose = require('mongoose'); var Schema = mongoose.Schema; var listSchema = new Schema({ name: { type: String, default: datestring + " List" } }); mongoose.exports = mongoose.model('List', listSchema); 

路线

 app.get('/lists', function (req, res, err) { List.find(function (err, docs){ //THIS IS WHAT'S FAILING res.json(docs); }); }); 

调节器

 angular.module('pickUp').controller('ListsCtrl', ['$scope', '$http', 'ngDialog', 'lists', function($scope, $http, ngDialog, lists) { $scope.lists = lists.lists; }]); 

 angular.module('pickUp').factory('lists', ['$http', function($http){ var lists = { lists: [] }; lists.getAll = function(){ console.log("trying. . ."); $http.get('/lists').success(function(res){ angular.copy(res, lists.lists); }); }; return lists; }]); 

configuration

 $stateProvider .state('/', { url: '/', templateUrl: 'views/lists.html', controller: 'ListsCtrl', resolve: { listPromise: ['lists', function (lists){ return lists.getAll(); }] 

       

网上收集的解决方案 "Mongoose Model.find不是一个函数吗?"

您的模块导出不正确

 var mongoose = require('mongoose'); var Schema = mongoose.Schema; var listSchema = new Schema({ name: { type: String, default: datestring + " List" } }); **mongoose.exports = mongoose.model('List', listSchema);** <!-- this is wrong --> 

它应该是

 **module.exports = mongoose.model('List', listSchema)**