Skip to content

Instantly share code, notes, and snippets.

@simenbrekken
simenbrekken / client.js
Created January 30, 2014 09:09
Reactive: Client
var router = require('page'),
qs = require('qs'),
react = require('react'),
routes = require('./routes')
router(function(req, next) {
req.query = qs.parse(req.querystring)
next()
})
@simenbrekken
simenbrekken / reactive-server.js
Created January 30, 2014 09:10
Reactive: Server
var express = require('express'),
serverMiddleware = require('./lib/server-middleware'),
browserify = require('browserify-middleware'),
routes = require('./routes')
browserify.settings({
transform: ['reactify'],
extensions: ['.js', '.jsx'],
grep: /\.jsx?$/
})
@simenbrekken
simenbrekken / reactive-server-middleware.js
Created January 30, 2014 09:11
Reactive: Server middleware
var express = require('express'),
reactTools = require('react-tools'),
react = reactTools.React,
readFile = require('fs').readFileSync,
utils = require('./utils')
require.extensions['.jsx'] = function(module, filename) {
var source = readFile(filename, {encoding: 'utf8'})
try {
var emitter = require('./emitter')
var router = module.exports = emitter('unique')
var $window = $(window),
$document = $(document),
$body = $(document.body)
var leadingSlashPattern = /^\//
@simenbrekken
simenbrekken / server-middleware.js
Created January 30, 2014 09:27
Server middleware
var express = require('express'),
reactTools = require('react-tools'),
react = reactTools.React,
readFile = require('fs').readFileSync,
utils = require('./utils')
require.extensions['.jsx'] = function(module, filename) {
var source = readFile(filename, {encoding: 'utf8'})
try {
@simenbrekken
simenbrekken / UserPage.jsx
Created February 11, 2014 16:35
User Page
/** @jsx React.DOM */
var ReactAsync = require('react-async'),
superagent = require('superagent')
module.exports = ReactAsync.createClass({
getInitialStateAsync: function(callback) {
superagent
.get('http://localhost:3000/api/users/' + this.props.username)
.end(function(err, res) {
@simenbrekken
simenbrekken / express-inception.js
Created February 12, 2014 10:31
Express application middleware
var express = require('express')
var middleware = function(options) {
options = options || {}
var app = express()
app.get('/foo')
app.use('/bar' function(req, res) {
res.send('Hello bar!')
})
@simenbrekken
simenbrekken / Application.jsx
Created March 5, 2014 01:42
React Async Server/Client Rendering
/** @jsx React.DOM */
'use strict';
var React = require('react'),
Router = require('./Router')
module.exports = React.createClass({
displayName: 'Application',
@simenbrekken
simenbrekken / Head.jsx
Created March 5, 2014 09:01
React <head> component.
/** @jsx React.DOM */
'use strict';
var React = require('react')
module.exports = React.createClass({
displayName: 'Head',
componentWillReceiveProps: function(nextProps) {
@simenbrekken
simenbrekken / example.js
Last active August 29, 2015 13:57
Simple RegExp-based Router
// "Routes"
function Home() {
console.log('Home')
}
function Products(params) {
console.log(params.category, 'products')
}
function ProductDetails(params) {