Friday, August 19, 2011

Building a Simple Web App - Step 5

Install jsdom


npm install jsdom

Install jquery


npm install jquery

Alter Hello World file to do server side magic


var jsdom = require('jsdom');
var jquery = require('jquery');
var express = require('express');

var app = express.createServer();

app.set('view engine', 'jade');

app.configure(function() {
  app.use(express.static(__dirname + '/static'));
});

app.get('/', function(req, res) {
  res.render('index', {title: 'Express/Jade Example'});  
});

app.get('/:dir', function(req, res) {
  var dir = req.params.dir.toLowerCase();
  res.render(dir, {title: dir + ' page'}, function(err, contents){
    var document = jsdom.jsdom(contents);
    var window = document.createWindow();
    var $ = jquery.create(window);

    $('#nav li a').each(function(index) {
      if($(this).text().toLowerCase() == dir) {
    $(this).addClass('current');
      } else {
    $(this).removeClass('current');
      }
    });

    res.send(window.document.innerHTML);

  });
});

app.listen(3000);
console.log('Server is running on localhost:3000');