Skip to content

Instantly share code, notes, and snippets.

@chaddy81
Last active December 10, 2016 09:41
Show Gist options
  • Save chaddy81/9e2d8f86b532febdb0cd to your computer and use it in GitHub Desktop.
Save chaddy81/9e2d8f86b532febdb0cd to your computer and use it in GitHub Desktop.
Node Sample
var mongodb = require('mongodb');
var mongojs = require('mongojs');
var db = mongojs('database', ['posts']);
exports.index = function(req, res){
var posts = '';
db.posts.find(function(err, docs){
res.json(docs);
});
}
exports.show = function(req, res){
var id = new require('mongodb').ObjectID(req.params.id);
db.posts.findOne({_id:id}, function(err,docs) {
// res.json(docs);
if(err){
console.log("error");
}else{
res.json(docs);
}
});
}
exports.create = function(req, res){
var title = req.body.title;
var content = req.body.content;
db.posts.insert({title: title, content: content}, function(err,docs) {
// res.json(docs);
if(err){
console.log("error");
}else{
res.send(200);
}
});
}
/**
* Module dependencies.
*/
var express = require('express'),
routes = require('./routes'),
Mongolian = require('mongolian'),
nowjs = require("now");
server = new Mongolian();
db = server.db("hube");
users = db.collection("users");
var venues = db.collection("venues");
var app = module.exports = express.createServer();
var everyone = nowjs.initialize(app);
// Configuration
app.configure(function() {
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(express.cookieParser());
app.use(express.session({
secret: 'afasagashfasf'
}));
app.use(app.router);
app.use(express.static(__dirname + '/public'));
});
app.configure('development', function() {
app.use(express.errorHandler({
dumpExceptions: true,
showStack: true
}));
});
app.configure('production', function() {
app.use(express.errorHandler());
});
// Helpers
app.dynamicHelpers({
session: function(req, res) {
return req.session;
}
});
// Routes
app.get('/', routes.index);
app.get('/login', routes.login);
app.get('/callback', routes.callback);
app.get('/interact', routes.interact);
app.get('/home', routes.home);
app.get('/signout', routes.signout);
app.get('/locate', routes.locate);
app.get('/save-user', function(req, res) {
var uid = req.query["uid"];
var name = req.query["name"];
var photo = req.query["photo"];
var token = req.query["token"];
req.session.uid = uid;
req.session.name = name;
req.session.photo = photo;
req.session.token = token;
req.session.clients = '';
users.insert({
uid: uid,
name: name,
photo: photo,
token: token,
venues: ''
});
// res.writeHead(200, { 'Content-Type': 'text/javascript', 'Access-Control-Allow-Origin' : '*' });
res.redirect('http://testing.hubeapp.com/home');
});
app.get('/save-venue', function(req, res) {
var venue = req.query["venue"];
var venue_name = req.query["venue_name"];
var latlong = req.query["latlong"];
req.session.venue_name = venue_name;
req.session.venue = venue;
req.session.latlong = latlong;
users.findOne({
uid: req.session.uid
}, function(err, post) {
if (err) {
console.log(err);
}
if (post) {
post.venues = {
venue_name: venue_name,
venue: venue
};
users.save(post);
}
});
res.redirect('http://testing.hubeapp.com/interact');
});
var port = process.env.PORT || 3000;
app.listen(port);
nowjs.on('connect', function(){
console.log("Joined: " + this.now.name);
});
everyone.now.distributeMessage = function(message, name, from){
everyone.now.receiveMessage(message, name, from);
};
var Mongolian = require('mongolian')
server = new Mongolian();
db = server.db("hube");
users = db.collection("users");
// var users = db.collection("users");
clients = db.collection("clients");
exports.index = function(req, res) {
res.render('index', {
title: 'Express :: Login',
heading: 'Login'
})
};
exports.login = function(req, res) {
};
exports.locate = function(req, res) {
res.render('locate', {title: 'Express :: Locate', heading: 'Locate'})
};
exports.callback = function(req, res) {
res.render('callback', {
layout: false
})
};
exports.interact = function(req, res) {
users.find({
venues: {
venue_name: req.session.venue_name,
venue: req.session.venue
}
}).toArray(function(err, post) {
if (err) {
console.log(err);
} else {
req.session.clients = post;
console.log(req.session.clients);
}
});
setTimeout(function() {
res.render('interact', {
title: 'Express :: Interact',
clients: req.session.clients,
heading: 'Interact'
});
}, 250);
};
exports.home = function(req, res) {
var uid = req.params.uid;
res.render('home', {
title: 'Express :: Home',
heading: 'Home'
});
};
exports.signout = function(req, res) {
req.session.destroy();
res.redirect('http://testing.hubeapp.com/');
};
/**
* Module dependencies.
*/
var express = require('express')
, routes = require('./routes')
, user = require('./routes/user')
, api = require('./routes/api/index')
, http = require('http')
, path = require('path')
, compass = require('node-compass');
var mongojs = require('mongojs');
var db = mongojs('chadbartels', ['posts']);
compass({
sass: path.join(__dirname, 'scss')
});
var app = express();
// all environments
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(compass());
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));
// development only
if ('development' == app.get('env')) {
app.use(express.errorHandler());
}
exports.db = db;
app.get('/', routes.index);
app.get('/api/posts', api.index);
app.post('/api/posts', api.create);
app.get('/api/posts/:id', api.show);
http.createServer(app).listen(app.get('port'), function(){
console.log('Express server listening on port ' + app.get('port'));
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment