2016-10-27 2 views
0

Я следую за тренировками в nodejs, express и mongo.ТипError: Object # <Object> не имеет метода 'find'

Я разработал остальное WebService, но когда я пытаюсь получить доступ к нему, у меня есть текущее исключение:

TypeError: Объект # не имеет метод «найти»

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

Schema Definition

var mongoose = require('mongoose'), 
Schema = mongoose.Schema; 

var bookModel = new Schema({ 
    title:{ 
     type:String 
    }, 
    author:{type:String}, 
    genre:{type:String}, 
    read:{type:Boolean,default:false} 

}); 

module.export= mongoose.model('Book',bookModel); 

Определение моей службы

var express = require('express'), 
mongoose = require('mongoose'); 


var db = mongoose.connect('mongodb://localhost/bookAPI'); 

var Book = require('./models/bookModel'); 

var app = express(); 

var port = process.env.PORT || 3000; 

var bookRouter = express.Router(); 

bookRouter.route('/books') 
    .get(function(req,res){ 

    Book.find(function(err,books){ 
     if(err) 
      console.log(err); 
     else 
      res.json(books); 
    }); 

}); 

app.use('/api', bookRouter); 

app.get('/',function(req,res){ 

    res.send('welcome to my api 2000'); 
}) 

app.listen(port, function(){ 
    console.log('Running on PORT: ' +port); 

}); 

ответ

1

попробовать это:

var Book= mongoose.model('Book',bookModel); 

экспорт модуль так:

module.exports = { 
    Book: Book 
}; 

И импорт с помощью следующего кода:

var Book = require('./models/bookModel').Book; 

после этого записи найти запрос,

Book.find({},function(err,books){ 
     if(err) 
      console.log(err); 
     else 
      res.json(books); 
    }); 
+0

Спасибо Чираг ваше решение работает. Не могли бы вы рассказать мне, почему мой импорт и экспорт работают неправильно. – user2049200

Смежные вопросы