0.0.6 • Published 11 years ago

fsjs v0.0.6

Weekly downloads
4
License
-
Repository
github
Last release
11 years ago

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
}
0.0.6

11 years ago

0.0.5

11 years ago

0.0.4

11 years ago

0.0.3

11 years ago

0.0.2

11 years ago

0.0.1

11 years ago

0.0.0

11 years ago