This new version brings many critical bug fixes and improved support for Node.js Cluster.
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.
- NoSQL database synchronization (locking) in cluster
- Cache synchronization in cluster
- Documentation: All cluster methods
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 ofconnection.id
forid
andblacklist
arguments - fixed a waiting mode in
GETSCHEMA()
- fixed cache
instance.cache()
in RESTBuilder - fixed NoSQL filtering in
builder.or()
andbuilder.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.
Other posts from Total.js Platform
- 2024-11-13Benchmarking Node.js Frameworks: selecting your framework for 2025!
- 2024-11-01October report 2024
- 2024-10-22Performance Testing: Total.js vs. NestJS
- 2024-10-01September report 2024
- 2024-09-27Total.js UI Builder: #2 designing your first interface
- 2024-09-26Total.js V5: Middlewares
- 2024-09-23Beginner Guide to Total.js UI: # 05 Client-side routing
- 2024-09-23Total.js UI #4: Data Binding (Part 2 – Practical Example)
- 2024-09-20Introduction to Total.js UI Builder: A Beginner’s Guide
- 2024-09-13Total.js v5: #06 Understanding File Routing