3.3.11.Building support for Partial Responses
git clone https://github.com/acloudfan/REST-API-Course.git cd REST-API-COURSE/ git checkout partialresponse npm installnode tests/TestHotelsDBOps
Last updated
git clone https://github.com/acloudfan/REST-API-Course.git
cd REST-API-COURSE/
git checkout partialresponse
npm install node tests/TestHotelsDBOpsLast updated
module.exports = function(router){
'use strict';
router.route(URI).get(function(req, res,next){
console.log("GET Hotels")
//1. fields
var fields ={}
if(req.query && req.query.fields !== undefined){
fields = createFields(req.query.fields)
}
//2. Setup options
var options = {fields:fields}
console.log(options)
//3. execute the query
var criteria = {}
db.select(criteria, options, function(err,docs){
if(err){
console.log(err)
res.status(500)
res.send("Error connecting to db")
} else {
if(docs.length == 0){
res.status(404)
}
console.log("Retrieved hotels = %d",docs.length)
res.send(docs)
}
});
});
}
// RETRIEVE hotels packages based on criteria & fields
// https://docs.mongodb.com/manual/reference/method/db.collection.find/#find-projection
// options = {
// fields: {/** Projection **/}
// }
exports.select = function (criteria,options, callback) {
model.Hotels.find(criteria, function (err, data) {
callback(err, data)
}).select(options.fields)
}