# Chanjs **Repository Path**: chancms/Chanjs ## Basic Information - **Project Name**: Chanjs - **Description**: Chan.js 基于express 纯js研发的轻量级mvc框架。基于函数式编程思想,流程清晰,代码易读,可持续维护高。 - **Primary Language**: NodeJS - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 10 - **Forks**: 8 - **Created**: 2024-01-06 - **Last Updated**: 2025-09-07 ## Categories & Tags **Categories**: webframework **Tags**: None ## README # Chanjs Chanjs 是一个基于 Express5+ 构建的轻量级 MVC 框架,完全使用 JavaScript 开发。它体现了函数式编程的概念,提供了卓越的性能、清晰的代码和易于遵循的过程,确保了高可维护性。 ## 特点 - 基于 Express 构建 - 支持 ES6 语法 - 模块化设计 - 多模块化路由 - 模块化 views - 模块化 controllers - 模块化 services - 插件式架构 - 轻量级(核心代码在300行以内) - 缓存支持 ## 约定优于配置 ```code |- app |- module |- module1 |- controller |- service |- view |- router.js |- module2 |- controller |- service |- view |- router.js |- extend |- middleware |- plugin |- plus-module1 |- controller |- service |- view |- router.js |- module2 |- controller |- service |- view |- router.js |- config |- public |- index.js |-.env.dev |-.env.prd ``` ### 初始化过程 - 初始化 - 加载配置 - 加载模块 - 加载服务 - 加载控制器 - 加载路由 - 加载扩展 - 加载插件 - 加载服务 - 加载控制器 - 加载路由 - `beforeStart()` 钩子用于将数据库中的配置合并到配置中 - `run()` 启动服务器 ### 官方网站 使用 Chanjs 开发的 CMS 系统 网站:[https://www.chancms.top](https://www.chancms.top) ### 功能亮点 - 配置文件 - 多模块 MVC 结构 - 插件 MVC 支持 - CORS 跨域配置支持 - 多数据库支持 (PostgreSQL、MySQL / MariaDB、SQLite3、Oracle Database、MSSQL) - 路由控制 - Art-template 模板引擎 - 静态资源管理 - Cookie 处理 - 日志功能 ### 运行 ```javascript import Chanjs from "chanjs"; const chan = new Chanjs(); // 前置钩子 chan.beforeStart(fn); // 开始加载 await chan.start(); chan.run((port) => { console.log(`ChanCMS is running on ${port}`); }); ``` 该框架专为寻求简单与功能之间平衡的开发者设计,为构建 Web 应用程序提供了一个强大的基础。