Skip to content

golyshevd/fist

 
 

Repository files navigation

fist the framework Build Status

Fist is a nodejs framework designed to help create scalable server applications.

##What do I get?

#####Plugin system Modular application structure. Automatic project files loading.

fist_plugins/ models/ user.info.js news.list.js news.available_list.js controllers/ news_page.js 

#####Loosely coupled architecture Focus on unit development. Encapsulated business logic.

app.unit({ name: 'news.available_list', deps: ['news.list', 'user.info'],

#####Data models Simple and intuitive data structures. Unobtrusive data typing.

{ errors: {}, result: { news: { available_list: [ { type: "post", visibility: "all",

#####Thin controllers Just check that your models are valid.

app.unit({ name: 'news_page', deps: ['news.available_list'], main: function (track, context) { if (context.e('news.available_list')) { track.status(500).send();

#####Built-in logging tools Always clear what happening and where. More reliability.

app.unit({ name: 'user.info', main: function (track, context) { context.logger.debug('Checking user by sessid\n"%s"', track.cookie('sessid'));

#####Built-in cache Just specify what parts of your program can be cached. Less loading. More responsiveness.

app.unit({ name: 'news.list', maxAge: 5000,

##Hello, world!

$ npm install fist

app.js:

var fist = require('fist'); var app = fist(); app.listen(1337);

fist_plugins/routes.js:

module.exports = function (app) { app.route('GET /hello/(<name>/)', 'hello_page'); };

fist_plugins/controllers/hello_page.js:

module.exports = function (app) { app.unit({ name: 'hello_page', deps: ['greeting_data'], main: function (track, context) { track.send(context.r('greeting_data.helloText')); } }); };

fist_plugins/models/greeting_data.js:

module.exports = function (app) { app.unit({ name: 'greeting_data', main: function (track, context) { return { helloText: 'Hello, ' + context.p('name') }; }, params: { name: 'what is your name?' } }); };
$ node app.js

See the full example code

###Quick start

##Docs


LICENSE MIT

About

nodejs application framework

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • JavaScript 99.6%
  • Other 0.4%