fsjs v0.0.6
fsjs
Tiny opiniated web framework for node that relies heavily on fs. If watch doesn't work, oops.
require('fsjs')(8000)
exports.get = function(callback){
callback('Hello World')
}
Installation
$ npm install -g fsjs
What it does
fsjs watches the current application's entry point directory for changes, and requires all modules
$ ls
edit.js
app.js
$ cat app.js
require('fsjs')(8000)
$ node app.js
It handles urls like '/edit/master' by calling edit.js's exported method
exports.get = function(branch,callback) {
console.log(branch)
// master
callback('Edited!')
}
The default callback writes the data to res, stringifying it if it is an object. You can pass your own callback if you like (in your main file, say app.js):
require('fsjs')(8000,function(data,defaultCallback){
defaultCallback('<!doctype html>'+JSON.stringify(data))
})
You can also pass names for arguments in the url before the module name:
require('fsjs')(8000,'user','repo',callback)
They are passed as properties of this to your module, so '/arpith/fsjs/edit/master/README.md' can be handled by edit.js:
exports.get = function(branch,file) {
var callback = arguments[arguments.length-1]
console.log(this.user)
// arpith
console.log(this.repo)
// fsjs
console.log(branch)
// master
console.log(file)
// README.md
callback('done')
}
It also handles smaller urls (say '/arpith/edit') as expected:
exports.get = function(){
console.log(this.user)
// arpith
console.log(this.repo)
// undefined
}
Finally, this also has the request and response that http.createServer passes:
exports.get = function(){
console.log(this.request.url)
// /arpith/fsjs/edit/master/readme.md
console.log(this.response.statusCode)
// 200
}