Skip to content

Instantly share code, notes, and snippets.

View dengjonathan's full-sized avatar

Jon Deng dengjonathan

View GitHub Profile
@dengjonathan
dengjonathan / forLoop.js
Last active September 10, 2016 15:48
for loop
var names = ['jon', 'jane', 'jack'];
// something we want to do with each item in array
var log = function(a) {
console.log(a);
}
// using for loop
for (var i = 0; i < names.length; i++) {
log(names[i]);
@dengjonathan
dengjonathan / routerHttpServer.js
Created September 1, 2016 03:54
Simple HTTP server with router for API endpoints
var http = require('http');
var fs = require('fs');
var url = require('url');
var streamMap = require('through2-map');
var port = process.argv[2];
var path = process.argv[3];
var server = http.createServer(function(request, response) {
var get = url.parse(request.url, true);
@dengjonathan
dengjonathan / simpleHTTPserver.js
Last active September 1, 2016 03:53
Create a basic HTTP server with node that returns the same file from a read stream on every request
var http = require('http');
var fs = require('fs');
var url = require('url');
var streamMap = require('through2-map');
var port = process.argv[2];
var path = process.argv[3];
var server = http.createServer(function(request, response) {
var get = url.parse(request.url, true);
@dengjonathan
dengjonathan / pipe.js
Last active August 29, 2016 00:00
An example of piping in output from an HTTP request into another function
var http = require('http');
var bl = require('bl');
// file path is from enviroment variable passed in through CLI
var urls = process.argv.slice(2);
var results = [];
var returned = 0;
function httpGet(index) {
@dengjonathan
dengjonathan / asynWithErrorHandling.js
Created August 28, 2016 18:19
Idiomatic Node async call with eror handling
// this is an idiomatic example of a Node async call with callbacks that
// handle both returned data and error
/***********This is the module defined for later use */
var fs = require('fs');
module.exports = function(file, ext, callback) {
fs.readdir(file, function(err, data) {
// if readdir returns error, call callback with error early
@dengjonathan
dengjonathan / asyncIO.js
Last active August 28, 2016 20:21
Node asyn I/O with callback after I/O returns
var http = require('http');
var bl = require('bl');
// file path is from enviroment variable passed in through CLI
var url = process.argv[2];
var consolidated = '';
var callback = function(data) {
consolidated += data;
var quickSort = function (arr) {
if (arr.length === 0) {
return [];
}
var left = [];
var right = [];
var pivot = arr[arr.length - 1]; // use right most value as pivot
_.each(arr.slice(0, arr.length - 1), function (each) {
// implementation of quicksort
var quickSort = function (arr) {
if (arr.length === 0) {
return [];
}
var left = [];
var right = [];
var pivot = arr[arr.length - 1]; // use right most value as pivot
@dengjonathan
dengjonathan / gulpfile.js
Created August 21, 2016 17:30
Front-End Development Gulpfile
var gulp = require('gulp');
var browserSync = require('browser-sync')
.create();
//var sass = require('gulp-sass');
// Static Server + watching scss/html files
gulp.task('serve', function () {
browserSync.init({
server: "./"
@dengjonathan
dengjonathan / flattenReduce.js
Created August 9, 2016 01:46
flatten using reduce
function each(collection, callback) {
if (Array.isArray(collection)) {
for (var i = 0; i < collection.length; i++) {
callback(collection[i]);
}
} else {
for (var j in collection) {
callback(collection[j]);
}
}