Skip to content

Instantly share code, notes, and snippets.

View mikekunze's full-sized avatar

Mike Kunze mikekunze

View GitHub Profile
@mikekunze
mikekunze / vendors_relation.js
Created August 14, 2011 14:12
Relational MongoDB with async foreach library
app.get('/vendors.json', function(req, res) {
var session = req.session;
var query = mods.url.parse(req.url,true).query;
var p_vendors = mods.mongoose.model('p_vendors');
var vendors = mods.mongoose.model('vendors');
var results = [];
p_vendors.find({ account_id: session.account_id }, function(err, docs) {
@mikekunze
mikekunze / schema.js
Created August 14, 2011 14:22
Schema for portal permissions
// Roles
this.roles = {
description: { type: String },
text: { type: String },
id: { type: String },
parent: { type: String },
leaf: { type: Boolean }
};
this.p_roles = {
@mikekunze
mikekunze / users.lookup.js
Created August 14, 2011 14:27
Using regular expressions in mongo
app.get('/users.json', function(req, res) {
var accounts = mods.mongoose.model('accounts');
var query = modules.url.parse(req.url,true).query;
accounts.find({name: new RegExp(query.query, 'i') }, function(err, docs) {
var results = {
success: true,
results: docs.length,
items: docs
@mikekunze
mikekunze / ninAccounts.js
Created August 17, 2011 15:28
Multi-deep async
var p_roles = mods.mongoose.model('p_roles');
var accounts = mods.mongoose.model('accounts');
var ninAccounts = [];
var inAccounts = [];
p_roles.find({ role_id: query.role_id }, function(err, docs) {
var async = mods.async;
var pushNinAccounts = function(item, callback) {
@mikekunze
mikekunze / async-parse-metrics_txt.js
Created September 12, 2011 21:44
Using Async to parse many metrics log files
var populateMetrics = function() {
metricsFiles = [];
var addMetric = function(file, callback) {
fs.stat(path + '/' + file, function(err, stats) {
if(stats.isDirectory()) {
fs.stat(path + '/' + file + '/Metrics.txt', function(err, stats) {
if(err) {
callback();
} else {
@mikekunze
mikekunze / async-init-beadChip.js
Created September 12, 2011 21:49
beadChips async init function
beadChip.prototype.init = function(file) {
// Localize beadChip members
var build = this.buildBeadChip;
var rows = this.rows;
var sections = this.sections;
var pass = this.pass;
var fail = this.fail;
var metricStream = fs.createReadStream(file, {
@mikekunze
mikekunze / async-build-beadChip.js
Created September 12, 2011 21:51
beadChips async forEach (section) build function
sectionObject = {
date: sectionArray[0],
beadChip: sectionArray[1],
section: sectionArray[2],
focusGrn: Number(sectionArray[3]),
regGrn: Number(sectionArray[4]),
p05Grn: Number(sectionArray[5]),
p95Grn: Number(sectionArray[6]),
focusRed: Number(sectionArray[7]),
regRed: Number(sectionArray[8]),
@mikekunze
mikekunze / archive-file.js
Created September 14, 2011 15:35
Pull files using streams and save a copy
var singleScan = function(file, callback) {
var path = file;
var fileArray = file.split('/');
var name = fileArray[fileArray.length - 1];
var bead = fileArray[fileArray.length - 2];
fs.stat('archive/' + bead + '_' + name, function(err, stats) {
if(err) {
@mikekunze
mikekunze / qsurvey-mongoose.js
Created September 19, 2011 23:50
Quick Survey Mongoose
mongoose.connect('mongodb://localhost/serveyus');
var schema = mongoose.Schema,
ObjectID = schema.ObjectId;
mongoose.model('owner', new schema({
username: { type: String },
description: { type: String },
email: { type: String },
password: { type: String }
});
@mikekunze
mikekunze / async.example.js
Created October 10, 2011 19:41
Pseudo AsyncNess
// npm install async
// installs to ./node_modules
var db; // Pretend this is a valid async DB connection
var async = require('async');
var bigArray = []; // Pretend this is full of data
var returnResults = []; // Pretend this is empty