Created
November 2, 2011 02:26
-
-
Save xjamundx/1332694 to your computer and use it in GitHub Desktop.
Sample Route Using Mongoose
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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