Skip to content

Instantly share code, notes, and snippets.

@zivester
zivester / expresscookies.js
Created February 9, 2013 02:31
Express (Connect?) does not send cookies on requests where req.session isn't altered. For the case of authentication/login, its useful to have the cookie time extended each time any user interaction exists. Setting a property in req.session should not be required.
var express = require('express'),
app = express(),
http = require('http'),
server = http.createServer(app);
app.use(express.bodyParser());
app.use(express.cookieParser());
app.use(express.favicon());
app.use(express.session({
#404.jade
extends layout
append title
| 404
block content
h1 404
#layout.jade
@zivester
zivester / gist:5122216
Last active December 14, 2015 17:28
angular.js: $q parallel set
var fields = {};
var p1 = $http.get('/api/field/sizes').success(function(sizes){
fields.sizes = sizes;
});
var p2 = $http.get('/api/field/colors').success(function(colors){
fields.colors = colors;
});
@zivester
zivester / gist:5233347
Created March 24, 2013 20:22
socket.io single client
var express = require('express'),
http = require('http'),
_ = require('underscore'),
app = express(),
server = http.createServer(app),
io = require('socket.io').listen(server);
// Sockets
var pool = {};
@zivester
zivester / gist:5266158
Created March 28, 2013 19:35
httpInterceptor for broadcasting open events
.factory('httpInterceptor', function($q, $injector, $rootScope){
var $http;
function open(num){
$rootScope.$broadcast('httpOpen', num);
}
function close(num){
$rootScope.$broadcast('httpClose', num);
}
return function(promise){
@zivester
zivester / gist:5306901
Last active December 15, 2015 18:49
socket.io-client not retrying indefinitely
var events = require('events'),
util = require('util'),
io = require('socket.io-client'),
url = "ws://localhost:12345", // intentionally an unreachable URL
socketOptions = {
"transports" : [ "websocket" ],
"try multiple transports" : false,
"reconnect" : false,
"connect timeout" : 5000
};
@zivester
zivester / gist:5332362
Last active December 15, 2015 22:19
encoding/decoding and Buffers
// Return a buffer, that when encoded to base64, will be of size "length"
exports.randomBytesBase64 = function(length){
length = Math.ceil(length * 3/4);
return require('crypto').randomBytes(length);
}
// Take a buffer and create a base64, url safe encoding
exports.urlEncode = function(buffer){
return buffer.toString('base64').replace(/\//g,'_').replace(/\+/g,'-');
}
@zivester
zivester / console
Last active December 15, 2015 23:09
Jade :cdata
undefined:18
buf.push('<![CDATA[\n{for p in chosen}
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
SyntaxError: Unexpected token ILLEGAL
at Object.Function (<anonymous>)
at Object.exports.compile (/home/zivester/code/DJPhoto/server/node_modules/jade/lib/jade.js:176:8)
at /home/zivester/code/DJPhoto/server/node_modules/jade/bin/jade:142:23
at fs.js:241:14
at Object.oncomplete (fs.js:93:15)
at process._makeCallback (node.js:306:20)
@zivester
zivester / gist:5527278
Last active December 17, 2015 01:19
if else if else spacing
if (!fee.length){
error = 'Amount is required.';
}
else if (!/^\-?[0-9]*\.?[0-9]{0,2}$/.test(fee)){
error = 'Amount must be a valid number.';
}
else if (parseFloat(fee) < 0){
error = 'Amount must be greater than 0.';
}
else {
@zivester
zivester / gist:5578675
Created May 14, 2013 19:19
[].join()
$('body').append([
"<div class='loading-screen' style='z-index:1005'>",
"<div class='loading-container'>",
"<div class='text'>Loading " + item.name + " (" + item.id + ")",
"<div class='progress progress-striped active' style='width: 100%'>",
<div class='bar' style='width: 100%;'></div>",
"</div>",
"</div>",
"</div>",
"</div>"