Total.js platform
Total.js platform

JavaScript platform for everyone

New Total.js Framework version 2.6

New Total.js version 2.6

This version is more of a hotfix than a new version, but so many changes forced me to create a new release v2.6. Please upgrade your Total.js from NPM $ npm install total.js or Download Total.js from GitHub directly.

News

Node.js Cluster

I have added a support for Node.js cluster. It's experimental functionality and so far it seems to work as expected.

Easy way to run Total.js in a cluster:

Improved schemas

Schema can inherit from another schema. A new asynchronous method schema.inherit() copies all fields, validation, preparations, default values, transformations, workflows, hooks, operations and CRUD operations from inherited schema.

A support for another HTTP module

This is the answer to these Performance tests on GitHub. Some frameworks use uws library which is a custom HTTP server written in C. I have also wrapped Total.js using uws but it can't parse request.body and therefore isn't applicable in production.

Total.js Watcher

Watcher replaces debug.js file and it's in Total.js core. So the code below runs the application and Total.js Watcher watches all changes. When a change is detected the Watcher restarts the app automatically.

Without options:

With options:

Improvements

  • improved sorting in NoSQL embedded database
  • improved processing of all requests

Bug fixes

  • fixed controller.send() a bad declaration of connection.id for id and blacklist arguments
  • fixed a waiting mode in GETSCHEMA()
  • fixed cache instance.cache() in RESTBuilder
  • fixed NoSQL filtering in builder.or() and builder.and() commands (critical)
  • fixed a bug in ImageMagick/GraphicsMagick when the path contains spaces (critical)
  • fixed controller.memorize() (critical)

These bugs show me how great Total.js Framework is. Total.js website was facing more than 1000 requests per second previous month and sometimes the CMS crashed. I took me a while to figure out that controller.memorize() doesn't work correctly, basicly the caching didn't work. Then i also realized that i added Total.js Flow to the CMS running on Total.js website and created a flow to do Geolocation by IP for each GET request. So caching not working and geolocation for each GET request, it's unbelievable what the framework managed to handle.


Become a Premium Member and support our developement.