Skip to content

Instantly share code, notes, and snippets.

@DavidSouther
Created June 10, 2015 01:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save DavidSouther/a906828ae144dfa7194d to your computer and use it in GitHub Desktop.
Save DavidSouther/a906828ae144dfa7194d to your computer and use it in GitHub Desktop.
Rupert Plugins (Mongo) example
var config = {
name: 'rupert-basic-example',
stassets: {
root: './src/client'
},
server: {
root: './src/server'
}
};
require('rupert')(config).start();
<!DOCTYPE html5>
<html lang="en">
<head>
<title>Plugins Demo</title>
<link rel="stylesheet" href="/vendors.css"/>
</head>
<body>
<div class="container">
<h1 class="title">Rupert Mongo Demo</h1>
<div>
<p>What's your name?</p>
<input id="name" class="form-control" />
<p id="hello" class="bg-info"></p>
<h2>I have greeted</h2>
<ul id="greeted"></ul>
</div>
</div>
<script src="/vendors.js"></script>
<script src="/application.js"></script>
</body>
</html>
$.get('/greet').then(addNames);
$('#name').on('change', function(event){
var name = event.target.value;
$('#hello').text('Hello, ' + name + '!');
addNames([name]);
$.ajax ({
url: '/greet',
type: 'POST',
data: JSON.stringify({name: name}),
contentType: 'application/json; charset=utf-8'
});
});
function addNames(names){
names.forEach(function(name){
$('#greeted').append($('<li>').text(name));
});
}
{
"dependencies": {
"rupert": "0.3.x",
"rupert-plugin-bootstrap": "^0.1.1",
"rupert-plugin-mongo": "0.0.4"
}
}
var greeted = [];
module.exports = function (app, config) {
app.get('/greet', function(request, response, next){
app.mongo.db.collection('greeted', function(err, collection){
if(err){ return next(err); }
collection.find({}, {}, function(err, cursor){
if(err){ return next(err); }
cursor.toArray(function(err, docs){
if(err){ return next(err); }
return response.status(200).send(docs.map(function(doc){
return doc.name;
}));
});
});
});
});
app.post('/greet', function(request, response, next){
app.mongo.db.collection('greeted', function(err, collection){
if(err){ return next(err); }
collection.insert({name: request.body.name}, function(err){
if(err){ return next(err); }
return response.status(201).send({ok: 1});
});
});
});
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment