2017-01-22 1 views
-2

Вот что у меня есть в файле с именем Zone.js,Mongoose найти не выполняет

var mongoose = require('mongoose'); 
mongoose.set('debug', true); 

var zoneSchema = new mongoose.Schema({ 
    name: {type: String, required: true, default: '', required: true}, 
    timestamp: {type: Date, default: Date.now, required: true}, 
    zipCodes: {type: [String], default: [], required: true} 
}); 

module.exports = mongoose.model('Zone', zoneSchema); 

А потом вот что у меня есть в файле с именем zoneController.js,

var Zone = require('../models/Zone'); 

module.exports = { 
    find: function(params, callback){ 
     console.log('Finding zone'); 
     Zone.find(params, function(err, zones){ 
      console.log('Got results'); 
      if (err){ 
       callback(err, null); 
       return; 
      } 
      callback(null, zones); 
     }); 
    } 
} 

А потом, у меня есть,

ZoneController = require('../controllers/zoneController'); 
ZoneController.find({}, function(err, results){ 
      console.log('Zone results received'); 
} 

проблема заключается в том, что метод .find() не дает мне ничего. Я получаю «Поиск зоны» в моей консоли, но после этого ничего не получается.

Структура моей папки правильная, и я ссылаюсь на правильные файлы.

+0

Параметр 'err' существует по какой-то причине. Проверьте, содержит ли он какой-либо результат. Кроме того, вы вообще подключаетесь к БД? – qqilihq

+0

@qqilihq Да, я подключаюсь к базе данных –

+0

@qqilihq Что касается ошибки, я не могу ее зарегистрировать, потому что метод find() никогда не выполняется. –

ответ

0

попробуйте это, я думаю, что вы должны вернуть свой метод поиска в свой контроллер. дайте мне знать, если это сработает.

module.exports = { 
    return { 
     find: function(params, callback) { 
      console.log('Finding zone'); 
      Zone.find(params, function(err, zones) { 
       console.log('Got results'); 
       if (err) { 
        callback(err, null); 
        return; 
       } 
       callback(null, zones); 
      }); 
     } 
    } 
} 
0

Вот .find пример Tweet модели в одном из моих старых проектов.

Tweet.find({}).sort({date: -1}).populate('_creator').exec((err, tweets) => { 
     res.render('tweet-all', {title: `All Tweets`, tweets: tweets}); 
}); 

Я думаю, вы должны использовать .exec() в модели.

+0

@HumanCyborgRelations сделал мой ответ, помог вам? Если да, пожалуйста, проголосуйте и отметьте его как правильный ответ :) – Codearts