2016-10-27 75 views
0

我實際上是在nodejs,express和mongo中進行一項培訓。TypeError:Object#<Object> has no method'find'

我開發了一個休息web服務,但是當我試圖訪問它,我有當前異常:

類型錯誤:對象#有沒有方法「發現」

我不明白的發生完全是因爲我的代碼看起來正確並且與本教程中的代碼相同。

架構定義我的服務

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

謝謝CHIRAG,你的解決方案的工作。你能告訴我爲什麼我的導入和導出不能正常工作。 – user2049200

相關問題