Skip to content

Instantly share code, notes, and snippets.

View marcusoftnet's full-sized avatar

Marcus Hammarberg marcusoftnet

View GitHub Profile
@marcusoftnet
marcusoftnet / wrapCo.js
Created May 7, 2014 13:08
wrapping in co
co(function *(){
// the actual test that will use yield
// code, code, code
// and then, when we’re done…
})(done);
@marcusoftnet
marcusoftnet / updateExisitingPost.spec.js
Created May 7, 2014 13:04
KoaMongoBlog test update existing post
var app = require('./app.js');
var co = require('co');
var should = require('should');
var request = require('supertest').agent(app.listen());
var posts = require('./blogRoutes.js').posts;
describe('Blog with mongo:', function(){
var removeAll = function(done){
co(function *(){
yield posts.remove({});
@marcusoftnet
marcusoftnet / list.html
Created May 7, 2014 13:00
KoaMongoBlog list.html
{% extends 'layout.html' %}
{% block title %}Posts{% endblock %}
{% block content %}
<h1>Posts</h1>
<p>You have <strong>{{ posts.length }}</strong> posts!</p>
<p><a href="/post/new">Create a Post</a></p>
<ul id="posts">
{% for post in posts %}
@marcusoftnet
marcusoftnet / render.js
Created May 7, 2014 12:58
KoaMongoBlog render.js
// Dependencies.
var views = require('co-views');
// setup views mapping .html
// to the swig template engine
module.exports = views(__dirname + '/views', {
map: { html: 'swig' }
});
@marcusoftnet
marcusoftnet / blogRoutes.js
Created May 7, 2014 12:50
KoaMongoBlog blogRoutes.js
// dependencies
var parse = require('co-body');
var render = require('./render.js');
// Set up monk
var monk = require('monk');
var wrap = require('co-monk');
var db = monk('localhost/koaMongoBlog');
var posts = wrap(db.get('posts'));
module.exports.posts = posts; // Let's expose the posts collection for testing
@marcusoftnet
marcusoftnet / app.js
Created May 7, 2014 12:47
KoaMongoBlog app.js
// Dependencies.
var logger = require('koa-logger');
var route = require('koa-route');
var koa = require('koa');
var app = module.exports = koa();
// middleware
app.use(logger());
// route middleware
@marcusoftnet
marcusoftnet / koaBlogPackage.json
Created May 7, 2014 12:40
KoaBlog package.json
{
"name": "KoaMongoBlog",
"description": "A very simple blog using mongo via monk",
"version": "0.0.1",
"dependencies": {
"co": "^3.0.0",
"co-body": "0.0.1",
"co-views": "^0.1.0",
"koa": "^0.5.0",
"koa-logger": "^1.1.0",
@marcusoftnet
marcusoftnet / usingGenerator.js
Last active August 29, 2015 14:01
Using the generator
var elvis = theGenerator(); // get an instance of the generator
console.log(elvis.next().value); // outputs "One, for the money”
console.log(elvis.next().value); // outputs "Two, for the show"
console.log(elvis.next().value); // outputs "Three to get ready! Now go, cat, go"
/*
console.log(elvis.next()); // ouputs { value: undefined, done: true }
console.log(elvis.next()); // throws Error: Generator has already finished*/
function *theGenerator(){
yield "One, for the money";
yield "Two, for the show";
yield "Three to get ready! Now go, cat, go";
};
@marcusoftnet
marcusoftnet / miniKoaApi.js
Last active August 29, 2015 14:00
mini Koa Api
// Dependencies
var koa = require('koa');
var app = koa();
var logger = require('koa-logger');
var route = require('koa-route');
// Db access
var monk = require('monk');
var wrap = require('co-monk');
var db = monk('localhost/koaDemoUsers');