# chanjs **Repository Path**: starry_sky_copy/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**: 0 - **Forks**: 10 - **Created**: 2024-12-09 - **Last Updated**: 2024-12-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Chan.js Chan.js is a lightweight MVC framework developed in pure JavaScript based on Express. It embodies functional programming concepts, offering superior performance, clear code, and easy-to-follow processes that ensure high maintainability. ## features - Built on top of Express - Supports ES6 syntax - Modular Design - Supports multiple module routes - Supports multiple module views - Supports multiple module controllers - Supports multiple module services - Plugin-based architecture - Lightweight (core code within 300 lines) - Long-term maintenance ## Conventions Over Configuration ```code |- app |- config |- 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 |- public |- index.js ``` ### Initialization Process - Initialization - Load configuration - Load modules - Load services - Load controllers - Load routers - Load extensions - Load plugins - Load services - Load controllers - Load routers - beforeStart() Hook to merge configurations from the database into the configuration - run() Start the server ### Official Website A CMS system developed with Chan.js Website: ### Highlights - Configuration files - Multi-module MVC structure - Plugin MVC support - CORS cross-origin configuration support - MySQL database support - Route control - Art-template template engine - Static resources management - Cookie handling - Logging capabilities ### run ```javascript const Chanjs = require("chanjs"); const chan = new Chanjs(); // Load middleware chan.beforeStart(fn); // Scan modules chan.start(); // Start the server chan.run(); ``` This framework is designed for developers who seek a balance between simplicity and functionality, providing a robust foundation for building web applications with ease.