Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 28th, 2012  |  syntax: None  |  size: 1.17 KB  |  hits: 14  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. var mongoose = require('mongoose')
  2. var Review = mongoose.model('Review')
  3. var express = require('express')
  4. var app = express.createServer()
  5. // ... other requires
  6.  
  7. // ... config stuff
  8.  
  9. // simple route to get a paginated page by number
  10. // We use Mongoose to find all the Reviews, with certain fields
  11. // skipped, limited and sorted for pagination
  12. app.get('/pages/:page', pagination, function(req, res) {
  13.     var page = req.param("page") || 1
  14.         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) {
  15.         if (err) return res.send(err)
  16.         res.render('home.html', {
  17.             reviews: reviews
  18.         })
  19.     })
  20. })
  21.  
  22. // Review.collection.findAndModify accesses the MongoDB native wrapper
  23. // and requires converting the id to an objectId. Review.find() calls
  24. // do that through mongoose
  25. app.get('/reviews/:reviewId', function(req, res) {
  26.         var reviewId = req.param("reviewId")
  27.     Review.collection.findAndModify({_id: new ObjectId(reviewId)}, [], {$inc:{count:1}}, function(err, review) {
  28.         res.render('view.html', {review: review});
  29.     });
  30. });
  31.  
  32. app.listen(80)