Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Mongoose Model.find is not a function?

Tags:

Spent hours trying to figure this out - I'm adding a new Model to my app but it's failing with "TypeError: List.find is not a function". I have another model, Items, that is set up in the same way and is working fine. Things seem to be failing in the route but it works if I hook it up to the Item model. Am I declaring the Schema incorrectly? Do I need to init the model in mongo or something?

model

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

route

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

controller

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

factory

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

config

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