<

Jade server for node js

I have been playing around with Node.js again, and have create a Jade web server.

Jade is a html templating engine similar to haml, that allow you to write html without all the extra syntax

e.g.

Valid Jade markup:

html
 head
 body
  div Hello World

The node module I have created is quite simple, it defaults to index.html if a template is not specified. templates can be loaded by using the query string key ‘page’ e.g. http://localhost:8080?page=about This will translate to about.jade template on disk.

I need to add support for loading local variables, i could do this using query string, but its not practical. maybe by using a post request? who knows! I need more of a think.

Here is the module i wrote: Dependencies - http,jade,fs,url

var http = require('http');
var jade = require('jade');
var fs = require('fs');
var url = require('url') ;
var options = {pretty:true};

http.createServer(function (req, res) {
 var query = url.parse(req.url, true).query;
 console.log(query);

 if(!query || !query.page) {
  //Show Index Page
  fs.readFile("index.html", function read(err, data) {
   if (err) console.log(err);
   res.writeHead(200, {'content-type': 'text/html'});
   res.end(data);
  });
 }else{
  var template = query.page + ".jade";
  fs.readFile(template, function read(err, data) {
   if (err) console.log(err);

   var markup = jade.compile(data, options)({});
   res.writeHead(200, {'content-type': 'text/html'});
   res.end(markup);
  });
 }

}).listen(8080);

Written on March 15, 2013.