Skip to content

Instantly share code, notes, and snippets.

@xjamundx
Created November 2, 2011 02:26
Show Gist options
  • Select an option

  • Save xjamundx/1332694 to your computer and use it in GitHub Desktop.

Select an option

Save xjamundx/1332694 to your computer and use it in GitHub Desktop.
Sample Route Using Mongoose
var models = require('./models')
var mongoose = require('mongoose')
var Review = mongoose.model('Review')
var express = require('express')
var app = express.createServer()
// ... other requires
// ... config stuff
// simple route to get a paginated page by number
// We use Mongoose to find all the Reviews, with certain fields
// skipped, limited and sorted for pagination
app.get('/pages/:page', pagination, function(req, res) {
var page = req.param("page") || 1
Review.find({}, {'slug':1,'snippet':1,'images':1,'date':1,'title':1,'location':1,'rating':1}, {skip: (page - 1) * limit, limit: limit, sort: [['date','desc']]}, function(err, reviews) {
if (err) return res.send(err)
res.render('home.html', {
reviews: reviews
})
})
})
// Review.collection.findAndModify accesses the MongoDB native wrapper
// and requires converting the id to an objectId. Review.find() calls
// do that through mongoose
app.get('/reviews/:reviewId', function(req, res) {
var reviewId = req.param("reviewId")
Review.collection.findAndModify({_id: new ObjectId(reviewId)}, [], {$inc:{count:1}}, function(err, review) {
res.render('view.html', {review: review});
});
});
app.listen(80)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment