Total.js is a powerful and pretty complete framework for developing server-side JavaScript applications and services.
The framework itself contains lots of built-in functionality, but it has also been modeled to use regular Node.js modules to extend native features.
Total.js supports WebSockets for real-time interactive communications, and has also built-in support for lots of modern Web development features and technologies like HTML 5, CSS 3, AJAX, JSON, LESS, REST, and many other more.
While Total.js handles server-side code, the developer is free to use anything he wants on the client side. The framework has been known to work with client side JS frameworks like AngularJS, jQuery, YUI, Dojo, Ember, Backbone and Knockout.
This approach to building Web apps makes Total.js one of the most powerful and versatile Node.js frameworks around, a tool to rival with more established solutions like Sails, Koa, Derby, or Flatiron.
Total.js has been used in live production environments to build complex applications like blogs, forums, chats, online stores, browser games, and many other more.
Examples, sample projects, and usage instructions are included with the Total.js download package.
Features:
- REST support
- WebSockets support
- Server Sent Events support
- Live streaming support
- LESS support
- Multi-lingual support
- Multipart file upload support
- Workers support
- Custom helpers support
- Restrictions support
- Redirects support
- Static files management
- Support for mobile devices
- Views manager
- Works with regular Node.js modules
- Advanced form data validation
- Can handle proxy requests
- Controller assertion testing
- Custom authorization
- Complex routing system
- Basic access authentication
- Automatically handles vendor prefixes
- JavaScript minification
- CSS minification
- XSS protection
- CSRF protection
- CORS protection
- Support for a debug mode
- Support for a production mode
- Support for various NoSQL databases
- SMTP email sending
- Advanced image processing
- Documentation
- Video tutorials
What is new in this release:
- Added:
- SCHEMA(name), returns group of schemas
- Builders.Schema() - schema supports composers
- Builders.Schema() - schema supports workflows
- Builders.Schema() - schema supports transformations
- added: Builders.Schema() - schema supports grouping `Builders.schema('group').get('schema_name)`
- framework.mail() - is alias for controller.mail()
- framework.view(name, [model], [layout], [repository]) - is alias for controller.view()
- Validate handler contains new parameter model -> (name, value, path, schema, model)
- String.prototype.replaceAt(index, character)
- Async queue - Utils.queue(name, maximumCalls, fn) (for e.g. EMFILE, too many open files)
- Updated:
- All models are loaded after is the framework loaded
- Utils.request(), timeout is possible to add as cookie, headers or encoding
- Array.wait(fnItem, fnCallback, removeItems) - default: function doesn't remove items
- Builders.UrlBuilder() -> toString([skipEmpty])
- Fixed:
- Problem with parsing a bad JSON datas - framework.decrypt();
What is new in version 1.6.1:
- Added:
- `ErrorBuilder.errors` list of errors
- transform-style, perspective, backface-visibility into the CSS auto-vendor-prefixes
- WebSocket supports global middleware
- Updated:
- Assertion testing (author: @toshipon)
- Fixed:
- controller.callback([view_name]), supports NoSQL Embeded Database
- WebSocket auto-ping
- (debug mode) caching of static files
- Global middleware (fixed exception in exception)
What is new in version 1.6.0:
- Added:
- Middleware to framework.websocket(url, funcInitialize, [flags], [protocols], [allow], [maximumSize], [middleware])
- Middleware to framework.file([name], [fnValidation], [fnExecute], [middleware])
- Response.send([code], body, [contentType])
- Response.json(obj);
- String.parseConfig([default]);
- Fixed:
- controller.custom()
- Long messages in WebSocket
What is new in version 1.5.2:
- Fixed:
- controller.proxy()
- request.signature()
- cache.read() - problem with exact expiration
- "options" route flag
What is new in version 1.4.0:
- Added:
- New global methods: INCLUDE() - framework.source(), SOURCE() - framework.source(), MODEL(name) -> framework.model(), MODULE(name) -> framework.module(), DATABASE() -> framework.database().
- Unauthorize flag.
- config['allow-compress-html'] (default: true).
- controller.language (read from request.language).
- Framework sets response['Content-Length'] for some static files.
What is new in version 1.3.1:
- Fixed:
- Partial views rendering in the layout
- Internally utils
What is new in version 1.3.0:
- Added:
- Supports CoffeeScript
- framework.isWindows (readonly, boolean)
- framework.isCoffee (readonly, boolean)
What is new in version 1.2.3:
- Added:
- View @{helper('name', [arg1], [arg2], ...)}
- controller.helper(name, [arg1], [arg2], ...)
- controller.change(message)
- New markup /*auto*/ for auto-vendor-prefixes
- [authorize] flag
- @{ng(name)}
- @{ngTemplate(name, [id])}
- @{ngController(name)}
- @{ngFilter(name)}
- @{ngService(name)}
- @{ngDirective(name)}
- @{ngResource(name)}
- @{ngCommon(name)}
- @{ngInclude(name)}
- @{ngStyle(name)}
- @{ngLocale(name)}
What is new in version 1.2.2:
- Added:
- View @{helper('name', [arg1], [arg2], ...)}
- Controller.helper(name, [arg1], [arg2], ...)
- Next markup /*auto*/ for auto-vendor-prefixes
- Authorize flag
- Updated:
- Logged flag is obsolete
- Unlogged flag is obsolete
- Fixed:
- Helpers
Requirements:
- Node.js 0.8 or higher
Comments not found