Skip to content

Instantly share code, notes, and snippets.

View craftgear's full-sized avatar
🏠
Working from home

Captain Emo craftgear

🏠
Working from home
  • self-employed
  • Japan
View GitHub Profile
// install "jasmine-node"
// copy "specs.js" file and "lib/" directory to your project directory
// make "spec" dir
// put your spec files in "spec" directory
// run spec "node specs.js"
//an example spec file
var sys, zombie;
zombie = require('zombie');
sys = require('sys');
@craftgear
craftgear / gist:838579
Created February 22, 2011 12:10
use express-form as a validator not a middleware
var form = require('express-form');
validate = form.validate;
filter = form.filter;
/* setup express server here */
app.get('/', function(req,res){
form(
validate('foo').required(),
validate('bar').required('a placeholder text for bar', 'a customize error message here')
@craftgear
craftgear / gist:1277950
Created October 11, 2011 12:26
bouncy_test.js
var bouncy = require('bouncy');
bouncy(function(req, bounce){
if (req.headers.host === 'localhost' ){
console.log(req.headers.host)
bounce(3000);
}
else{
var res = bounce.respond();
res.write('error: bounce nowhere');
@craftgear
craftgear / gist:1324415
Created October 29, 2011 12:53
Express + node-formidable code sample
formidable = require 'formidable'
app.configure ()->
app.set 'views', __dirname + '/views'
app.set 'view engine', 'jade'
app.use (req, res, next)->
contentType = req.headers['content-type']
if contentType? && contentType.match /multipart\/form-data/
form = new formidable.IncomingForm()
form.uploadDir = __dirname + '/temp'
@craftgear
craftgear / mongoose_paginate.coffee
Created December 28, 2011 02:44
Mongoose Pagination
# This snippet is inspired by edwardhotchkiss's mongoose-paginate (https://github.com/edwardhotchkiss/mongoose-paginate)
# and works with any methods like where, desc, poulate, etc.
#
# paginate method must be called at the end of method chains.
#
# paginate = require 'paginate'
# model
# .find()
# .desc("_id")
# .populate("some_field")
@craftgear
craftgear / jadewatch.coffee
Created February 23, 2012 22:35
jade watch
# run with 'coffee jadewatch.coffee dirname'
fs = require 'fs'
if process.argv.length < 3
console.log 'Aborted: arguments are too short.'
return
else
child_process = require('child_process')
child_process.exec "ps", (err,stdout,stderr)->
if stdout.indexOf("coffee jadewatch.coffee") < 0
@craftgear
craftgear / gist:5669101
Last active December 17, 2015 20:39
expressでミドルウェアもしくはイベントハンドラでセッションの値を参照する
//ミドルウェアでやる場合
app.configure(function(){
//・・・(略)・・・
app.use(function (req, res, next) {
app.locals.message = req.session.message;
next();
});
//・・・(略)・・・
});
async (callback) => {
const result = await asyncCode();
callback(null, result)
}
async (callback) => {
try {
const result = await asyncCode();
callback(null, result)
}
catch (e) {
callback(e)
}
}
async (callback) => {
const { err, ...result } = await asyncCode().catch(e => ({ err: e }));
if (err) {
callback(err);
return;
}
callback(null, result);
};