Skip to content

Instantly share code, notes, and snippets.

View nlf's full-sized avatar

nlf nlf

  • Code4rena
  • Kennewick, WA
View GitHub Profile
@nlf
nlf / server.js
Created December 20, 2013 18:29
var Hapi = require('hapi');
var Readable = require('stream').Readable;
var Transform = require('stream').Transform;
var util = require('util');
var server = new Hapi.Server('127.0.0.1', 8000);
util.inherits(Output, Transform);
function Output() {
Transform.call(this);
this._writableState.objectMode = true;
var VeryModel = require('verymodel').VeryModel;
var Hapi = require('hapi');
var Person = new VeryModel({
age: { type: Hapi.types.Number(), processIn: function (val) { return parseInt(val, 10); } }
})
var me = Person.create({ age: '10' });
console.log(me.age, typeof me.age); // 10 number
console.log(me.toObject().age, typeof me.toObject().age) // 10 number
var Hapi = require('hapi');
var server = new Hapi.Server('127.0.0.1', 8000);
var VeryHapiModel = require('verymodel-hapi').VeryHapiModel;
var PersonDef = {
name: Hapi.types.String()
}
var Person = new VeryHapiModel(PersonDef);
@nlf
nlf / ping.js
Created December 17, 2013 20:13
var Hapi = require('hapi')
var Readable = require('stream').Readable;
var Transform = require('stream').Transform
var util = require('util');
// just to make it easier to create the wrapper
util.inherits(Printer, Transform);
function Printer() {
Transform.call(this);
this._writableState.objectMode = true;
var Hapi = require('hapi');
var server = new Hapi.Server('127.0.0.1', 8000);
var VeryModel = require('verymodel').VeryModel;
var VeryHapi = require('verymodel-hapi');
var Transform = require('stream').Transform;
var util = require('util');
util.inherits(PersonStream, Transform);
function PersonStream() {
Transform.call(this);
@nlf
nlf / curl
Last active December 31, 2015 06:29
curl -X POST -H 'Content-Type: application/json' -d '{"name":"nlf"}' :8000/person
@nlf
nlf / templates.js
Last active December 30, 2015 20:48
var request = { };
request.params = { user_id: 'nathan', article_id: '1' };
var template = '/users/{user_id}/articles/{article_id}';
var expandTemplate = function expandTemplate(vars, template) {
var processed = template;
var keys = Object.keys(vars);
var i, l;

route: /articles

  • handler: articles.index
  • up: '/'
  • item: '/articles/{article_id}'
  • self: '/articles'
  • children: ['/articles/{article_id}/user']

route: /articles/{article_id}

  • handler: articles.index
  • up: '/articles'
var client = require('./').createClient();
var db_key = {
bucket: 'Test',
key: 'finding',
content: {
value: '{"test":"data"}', // had to make this json since you're setting a json content-type
content_type: 'application/json'
}
};
var Joi = require('joi');
var schema = { test: Joi.Types.String(), allowExtraKeys: true };
var testObj = { test: 'string', other: 'key' };
console.log(Joi.validate(testObj, schema)); // null
console.log(Joi.validate(testObj, schema)); //{ _errors: [ { message: 'the key (other) is not allowed', path: 'other' } ],
//_object: { test: 'string', other: 'key' },
//message: 'the key (other) is not allowed' }