面向真实业务软件的 Total.js

开发更快,更好地掌控整个栈。

没有不必要层次的业务软件。

Total.js 将高性能 Node.js 框架、生产级 UI 组件和成熟应用结合在一起,让团队以更少的胶水代码和更强的掌控力构建仪表板、门户、SaaS 产品和内部工具。

0依赖项
300+界面组件
MIT开源
totaljs.es / 软件栈
后端核心

在同一处集中管理路由、动作、REST、WebSocket、模式、文件、视图、邮件和运行时控制。

jComponents

输入控件、数据网格、表单、图表、仪表板、模态框以及可直接用于生产的界面。

# Node.js server-side framework
# Total.js v5
$ npm install total5
# 一套同时服务于后端、前端和 UI 的基础
Node.js
NoSQL
WebSocket
API/REST
Actions
查看实际效果
从扎实的基础开始

一个你可以理解、扩展并真正掌控的技术栈

Total.js 将关键部分紧密结合:后端、UI、数据、实时通信和业务逻辑,而不会把你的产品拆散到不必要的层次中。

框架

一个无外部依赖的 Node.js 基础,用于构建 API、Sockets、管理面板、门户、内部应用和长期运行的产品。

  • 直接路由与简洁的动作
  • 模式、校验和数据访问
  • REST、WebSocket、邮件、文件和视图

jComponents

专为业务应用设计的 UI 层:真实组件、简单绑定,以及无需笨重前端栈即可直接投入使用的界面。

  • 表单、数据网格、图表和仪表盘
  • 自动绑定与轻量视图
  • 超过 300 个生产级组件
框架 + jComponents

一个后端。一种 UI 哲学。

路由、动作、模式、视图、绑定和组件自然契合。更少胶水代码、更少决策,从想法到生产的路径更清晰。

纯框架

total5 / node.js

一个清晰的结构,用于业务逻辑、API、Sockets、任务和真实流程,而不会被框架噪音淹没。

framework.js
// 路由、动作、模式、数据库、Sockets 和邮件
require('total5');

exports.install = function() {
	ROUTE('GET /', 'view');
	ROUTE('+API ? orders-list      --> find');
	ROUTE('+POST /api/orders/      --> create');
	ROUTE('SOCKET / @text <1MB', socket); // "text" means only the plain text communication
};

	NEWACTION('find', {
		query: 'page:Number, sort:String',
		route: 'API ?',
		params: 'projectid:String',
		action: function($) {
			// $.query
			// $.params
			$.success();
		}
	});

	NEWACTION('create', {
		name: 'description',
		route: '+POST /api/orders/',
		input: '*name:String, age:Number',
		output: 'success:Boolean',
		params: 'projectid:String, id:String',
		action: function($, model) {
			// $.query
			// $.params
			// $.model or model "is prepared according to the input data schema"

			// $.success();
			// $.callback({ success: true });

			// TMS:
			// $.publish(model);
		}
	});

	function socket($) {

		// $ === WebSocketController

		// List of all clients in the controller
		// $.connections {Object} ID1:CLIENT, ID2:CLIENT, ID3:CLIENT
		/*
			for (var id of $.connections) {
				var client = $.connections[id];
				client.send({ name: 'Hello' });
			}
		*/

		// Automatically destroys the controller after all clients are disconnected.
		$.autodestroy();

		$.on('open', function(client) {
			// @client {Controller}
			client.send('Hello world');
		});

		$.on('close', function(client) {
			client.send('Bye Bye!');
		});

		$.on('message', function(client, message) {
			console.log(message);
		});

	}

Total.run();
直观路由
可复用动作
集成 WebSocket
NoSQL 与数据模式
MVC 与无服务器架构
可扩展且简洁

基于 jComponents 的界面

spa.min@20

使用专为真实业务界面设计的组件构建表单、仪表板、表格和完整工作流。

ui.html
<!-- Client-side UI library -->
<script src="https://cdn.componentator.com/spa.min@20.js"></script>
<link rel="stylesheet" href="https://cdn.componentator.com/spa.min@20.css" />

<ui-plugin path="scope">
	<ui-component name="input" path="?.filter" config="placeholder:搜索订单;autofill:1"></ui-component>
	<ui-component name="validate" path="?.form">
		<button class="exec" data-exec="?/submit">保存订单</button>
	</ui-component>

	<ui-component name="datagrid" path="?.orders" config="margin:0;click:?/detail">
		<script type="text/plain">
		[
			{ name: 'email', text: '客户', width: 220 },
			{ name: 'total', text: 'Total', align: 2, template: "{{ total | format(2) }}" },
			{ name: 'dtcreated', text: '创建时间', template: "{{ dtcreated | format('dd.MM.yyyy') }}" }
		]
		</script>
	</ui-component>

	<ui-component name="linechart" path="?.sales" config="height:180;type:curves"></ui-component>
	<ui-bind path="?.online" config="text:value + ' 在线'"></ui-bind>
</ui-plugin>

<script>
PLUGIN('scope', function(exports) {
	exports.submit = function() {
		var modal = exports.modal;
		exports.tapi('orders-list', modal, function(response) {
			exports.set('scope.orders', response);
		});
	};
});
</script>
300+ 组件
数据网格与表单
自动绑定
仪表盘与图表
面向业务的界面
更快的页面
基于 Total.js 构建的应用

验证技术栈的真实应用

Flow、OpenPlatform、CMS 和其他 Total.js 应用并非演示程序,而是可投入使用的产品,你可以用同一基础为自己的平台搭建解决方案。

Flow

与 API、服务和 AI 打通的自动化、集成和业务流程。

OpenPlatform

一个私有门户基础,包含身份、应用、用户和受控访问。

CMS

一个既可独立运行,又能融入更大业务解决方案的内容管理系统。

更多应用

秉持相同理念打造的工具:务实、直接,随时可用于真实工作。

性能与简洁

更少的开销。
更多掌控权。

Total.js 的设计目标是保持高性能、易理解,并始终贴近你正在构建的产品。

框架速度对比
Total.js
100%
Fastify
90%
Koa
77%
Express
70%
NestJS
67%
Sails
60%
Meteor
55%
Hapi
50%
已连接的原生应用

TotalDesktop Suite

围绕真实 Total.js 工作流打造的 Mac 和 iPad 原生工具:资源、代码、监控、项目与日常工作。

TotalResources app icon

TotalResources

通过原生应用管理多语言内容:翻译、拼写辅助、审校以及对每条产品文案的 AI 支持。

多语言
Total.js API
Athena AI
MCP / MVP
TotalCode app icon

TotalCode

Total.js Code 的原生工作区,在一款应用中即可管理本地控制和多个实例。

原生 IDE
多实例
MCP / MVP
TotalMonitor app icon

TotalMonitor

实时监控项目健康状况、指标、告警和规则,让问题在变得紧急之前就能被看见。

实时
告警
MCP / MVP
More applications icon

更多应用

更多原生工具将扩展同一生态,用于开发、管理、监控和产品演进。

进行中
新应用
生态系统
可用性

专为 Mac 与 iPad 打造,即将推出

首个版本将专注于 Apple 生态系统。Windows 和 Linux 会在之后推出,目前尚未计划具体日期。

Mac
iPad
App Store
Mac App Store
专业开发

我们构建经得起时间考验的 Total.js 软件

基于一致基础而非偶然复杂性构建的定制应用、仪表板、门户、SaaS 产品和私有平台。

内部应用
私有门户
控制面板
SaaS 产品
重构与改进
技术支持

定制开发

使用 Total.js 构建的应用、仪表盘、门户、内部工具和数字产品。

架构与咨询

技术决策、基础审查,以及在产品扩张前制定的务实计划。

实施与演进

从第一个版本到持续改进,一直保持同一技术方向。

维护与改进

对现有平台进行优化、重构、新功能开发和渐进式演进。

Spanish Total.js Platform

告诉我们,你的业务需要什么来运行得更好

我们以清晰的技术基础和务实的落地路径设计并构建 Total.js 应用。

业务应用和仪表板
私有平台和门户
架构、实施与演进

世界各地的团队已经在使用 Total.js 构建产品。

查看所有参考案例
Siemens
Orange
Datalan
Metrostav
Slovalco
Volkswagen
告诉我们您的项目

告诉我们你想构建什么,我们会给出一个务实的下一步建议。