Skip to content

Instantly share code, notes, and snippets.

@konsumer
Last active August 29, 2015 13:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save konsumer/10167672 to your computer and use it in GitHub Desktop.
Save konsumer/10167672 to your computer and use it in GitHub Desktop.
Basic REST + mongoose + express3 setup.
/**
* Model that represents a post that has been approved by an admin
* @type {Model}
*/
var mongoose = require('mongoose');
var Post = new mongoose.Schema({
"id": {type: String, required: true, unique: true},
"source": { type: String, enum: ["twitter", "instagram"], required:true },
"tag": {type: String, required: true},
"type": { type: String, enum: ["video", "image"], required:true },
"media": {type: mongoose.SchemaTypes.Url, required: true},
"username": {type: String, required: true},
"user_image": {type: mongoose.SchemaTypes.Url, required: true},
"caption": {type: String, required: true},
"post_date": {type: Date required: true},
"approved": Boolean
});
module.exports = mongoose.model('Post', Post);
var mers = require('mers'),
mongoose = require('mongoose'),
mongooseTypes = require("mongoose-types"),
express = require('express')
app = express();
var port = Number(process.env.PORT || 5000);
app.listen(port);
console.log('Listening on http://0.0.0.0:' + port);
if (!process.env.MONGOLAB_URI){
console.log('Please set the environment variable MONGOLAB_URI.');
process.exit(1);
}
mongoose.connect(process.env.MONGOLAB_URI);
mongoose.connection.on('error', function(e){
console.log('Mongoose Error:', e)
});
// load extra field-types: Email & Url
mongooseTypes.loadTypes(mongoose);
// load models
var Post = require('./Post');
// load mers REST interface: https://github.com/jspears/mers
app.use('/api', mers({mongoose:mongoose}).rest());
// static webserver in pub/
app.use(express.static(path.join(__dirname, 'pub')));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment