
Untitled
By: a guest on
May 28th, 2012 | syntax:
None | size: 1.17 KB | hits: 14 | expires: Never
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)