2017-07-28 32 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的代码让我检查 –