Last active
August 29, 2015 13:58
-
-
Save konsumer/10167672 to your computer and use it in GitHub Desktop.
Basic REST + mongoose + express3 setup.
This file contains 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
/** | |
* 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); |
This file contains 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 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