2017-07-28 67 views
2
var express=require('express'); 
var app=express(); 
var bodyParser=require('body-parser'); 
var mongoose=require('mongoose'); 
var createError = require('http-errors') 


app.use(bodyParser.json()); 


Genre=require('./model/genre') 
Book=require('./model/book') 

//connect to Mongoose 
mongoose.Promise = global.Promise; 
mongoose.connect('mongodb://localhost/bookstore', { useMongoClient: true}); 
var db=mongoose.connection; 


/* "/api/books" 
* GET: finds all books 
* POST: creates a new book 
    */ 
app.get('/api/books',function(req,res){ 
Book.getBook(function(err,book){ 
if(err){ 

    throw err; //Want this error in json format 
} 
    //JSON response will show all books in JSON format 
res.json(book); 
    }); 
    }); 




    //Connection to the mongodb localhost 
    app.listen(27017); 
    console.log('Running on port 27017'); 

    error is: 
    TypeError: Book.getBook is not a function 

請告訴我如何拋出錯誤JSON格式是新來的MongoDB ..... 我使用Visual Studio中的變化 隨着該MongoDB的+的node.js +快遞 想錯誤應顯示在JSON格式....錯誤在MongoDB中JSON格式

回答

2

好的這裏是在json中拋出錯誤的方法。

app.get('/api/books',function(req,res,callback){ 
    Book.getBooks(function(err,book){ 
    if(err){ 
     res.status(404).send({ error: 'error in mongo of kalpita!' }); 

      }else{ 
      //JSON response will show all books in JSON format 
      res.json(book); 
      } 
     },10); 
     }); 

並且還添加

Book.find({},回調).limit(極限);

模型中。

+0

使用上面的代碼我得到相同的TypeError。我有什麼改變嗎? 我的錯誤: TypeError:Book.getBook不是函數 – kalpita

+0

檢查了這一點在app.get中添加回調,並通過回調發送。 –

+0

如果它說TypeError:Book.getBook不是功能比Book文件沒有正確導入。添加Book model的代碼讓我檢查 –