TypeError:Object#<object>没有方法&#39; find&#39;

时间:2016-10-27 12:18:35

标签: node.js mongodb

我实际上遵循了nodejs,express和mongo的培训。

我开发了一个rest webservice但是当我尝试访问它时,我有当前的例外:

TypeError:对象#没有方法&#39;找到&#39;

我不明白究竟发生了什么,因为我的代码看起来是正确的,与教程中的相同。

架构定义

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 个答案:

答案 0 :(得分: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);
    });