<
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.