Skip to content

Instantly share code, notes, and snippets.

@dignifiedquire
Last active November 8, 2016 02:08
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dignifiedquire/4372493 to your computer and use it in GitHub Desktop.
Save dignifiedquire/4372493 to your computer and use it in GitHub Desktop.
Example of using connect with ejs templating and browserify.
exports.upcase = function(name) {
return name.toUpperCase();
};
// entry point for browser code
var test = require('./test');
var adapter = require('./<%= adapter %>');
window.onload = function () {
document.getElementById('result').innerHTML = test.test() + ' ' + test.test2();
document.getElementById('adapter').innerHTML = adapter.upcase('awesome');
};
if (window.document.readyState === 'complete') window.onload();
<html>
<head>
<script type="text/javascript" src="/testacular.js"></script>
</head>
<body>
<ul>
<li><span id="result"></span></li>
<li><%= now %></li>
<li><span id="adapter"></span></li>
</ul>
</body>
</html>
// ## Require Dependencies
var connect = require('connect');
var urlrouter = require('urlrouter');
var ejs = require('ejs');
var render = require('connect-render');
var browserify = require('browserify');
// ## Middleware
// ### EJS
var ejsMiddleware = render({
root: __dirname,
layout: 'index.html',
cache: true, // `false` for debug
helpers: {
sitename: 'connect-render demo site',
starttime: new Date().getTime(),
now: function (req, res) {
return new Date();
}
}
});
var template = function(body) {
return ejs.render(body, {
prefix: 'TESTACULAR',
adapter: 'adapter'
});
};
// ### Browserify all the things
var browserifyMiddleware = browserify({
mount: '/testacular.js',
watch: true
})
.register(template)
.addEntry(__dirname + '/js/entry.js');
// ### Routes
var indexHandler = function(req, res) {
res.render('index.html');
};
var routerMiddleware = urlrouter(function(app) {
app.get('/', indexHandler);
app.get('/index.html', indexHandler);
});
// ## Connect App
var app = connect()
.use(ejsMiddleware)
.use(connect.logger('short'))
.use(browserifyMiddleware)
.use(routerMiddleware)
.listen(3000, function(err){
if (err) {
console.error(err);
}
console.log("Started server on port 3000");
});
exports.test = function() {
return '..';
};
exports.test2 = function() {
return '<%= prefix %>';
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment