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(); }]
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With