当前位置: 首页> 开源推荐> 正文

推荐一款轻量级高质量CMS:ChanCMS—基于Express + MySQL,轻量、灵活、自研、稳定且高性能

chancms简介:

ChanCMS是一款基于Express和MySQL研发的一款轻量级高质量实用型CMS管理系统。它具备多种类型网站开发,如公司,企业,学校,***,图片,下载,产品等各类型网站建设。易扩展、基于模块化和插件化开发模式,适用于商用企业级程序开发。

大道至简

基于express自研mvc框架, 优秀的稳定性,可持续迭代,拒绝复杂设计模式。

独有特色

轻量、灵活、自研、稳定、高性能。

SEO标准:专注于seo功能,伪静态、html和拼音导航,自定义导航、灵活设置关键词和描述。

灵活:万能碎片功能,支持零碎文案配置,方便各类灵活文案配置,把灵活发挥到极致。

高扩展:无头cms和传统模板共存,多端渲染。灵活模块开发,开发多领域网站。支持扩展模型,字段配置,可动态生成表,超强扩展。

高持续性:多年深入nodejs技术栈,一心致力于自研开发,前后端代码逐行开发,可持续性强。

安全:基于knex,高防sql注入,接口权限校验,为安全提供保障。

模块化:一切模块相互独立,互不干扰。

插件化:灵活开发,支持完整功能模块。

开发历史

第一次构想 2015

基于express mongoDB尝试开发第一版cms

第二次重构 2018

基于koa2 mysql重构

第三次重构 2020

基于egg mysql Sequelize重构

第四次重构(ChanCMS) 2022

因eggjs不够稳定,故回归。基于express mysql knex开发第三版,经过多年开发和线上运营,回归最稳定的express。

核心功能

站点管理

栏目管理

文章模块

文章模块

标签管理

碎片管理 (广告,碎片文案,公司地址、电话、名称,微信等万能模块)

扩展模型

文章采集

在线留言

菜单管理

登录日志

pdf预览(按需加载)

本地上传&七牛云上传

日志功能

中英切换

语音播报

前端演示图

image.png

后端演示图

33333.png

ChanCMS教程:安装运行快速入门

环境配置前置条件:安装node.js mysql 和 mysql可视化工具。本地开发推荐用phpStudy。

快速入门

环境配置前置条件:安装node.js mysql 和 mysql可视化工具。本地开发推荐用phpStudy。

注意:版本有要求

nodejs v20.17.0(强烈建议保持一致)

mysql v5.7.26(兼容v5.6)

项目地址

https://gitee.com/yanyutao0402/chanyue-cms

文件结构

|- data

|- app

|- config 配置

|- extend 扩展功能

|- middleware 中间件

|- modules 模块

|-api api模块

|-- controller

|-- service

|-- router.js

|-web web模块

|-- controller

|-- service

|-- view

|-- router.js

***

|- plugin 插件

|- public 静态资源

|- utils 工具

|- router.js 总路由

|-app.js 应用入口

|-pm2.json pm2管理

JavaScript

1.安装运行 导入数据库文件

chancms.sql(data文件夹里面)

2 修改数据库配置文件

server/config/config.dev.js //开发环境

server/config/config.prd.js //生产环境

3 进入server 文件夹 设置npm源安装依赖

npm config set registry https://registry.npmmirror.com //切换新镜像源

安装

npm i

npm run dev

后访问 http://localhost:81 ,完成网站启动。

后台管理访问地址

http://localhost:81/public/admin/index.html

默认账号密码:chancms 123456

ChanCms模板安装目录教程

default默认模板路径

app/modules/web/view/default

模板文件

default默认模板核心模板文件

common/head.html 头部

common/footer.html 底部

common/nav.html 导航

common/search.html 搜索

common/meta.html meta

common/lang.html 语言切换

index.html 首页

list.html 列表页

article.html 文章页

page.html 单页

search.html 搜索页

tag.html tag 列表页面

message.html 留言

404.html 404页面

500.html 500页面

default默认模板静态资源

默认模板静态资源目录

app/public/template/default/

模板开发核心流程(例:模板名称为chancms)

1. 创建模板目录

在目录下创建模板目录

app/modules/web/view/

2. 创建模板文件

在view目录下,创建chancms文件夹,把默认default模板中的文件复制过来,或者直接复制一份default文件夹并修改名称为chancms。

3. 创建模板静态资源

在`app/public/template/`目录下创建模板静态资源目录chancms,和模板目录名称保持一直。

4.修改默认模板名称

默认模板为default,当模板文件和静态资源都已经按照上面要求操作完成后,在后台管理系统->站点管理 ,默认default模板名称改成chancms。

5.根据自己的需求写静态页面,然后调用标签实现模板皮肤的开发。

自定义模板数据

复制一份`app/modules/web/controller/home.js`文件,进行备份。默认home首页数据固定,如果自己需要功能,调用common.js文件里面的方法。

在`app/modules/web/controller/home.js`中找到首页渲染的方法进行修改。

//首页展示特定栏目id为1.2.3的最新文章(头条和最新内容)

let article = await CommonService.getArticleListByCids([1.2.3.])

//获取所有栏目的最新文章(头条和最新内容)

let article = await CommonService.getArticleListByCids();

//指定栏目内容调用 cid->栏目id len->个数 attr->头条 2推荐 3轮播 4热门

let news = await CommonService.getArticleListByCid(cid, len = 5. attr = "");

更多的通用方法可以查看`app/modules/home/service/common.js`,需要什么数据直接调用对应方法,基本常见的都已经封装。

ChanCMS:常用模板标签

全局标签

站点名称

{{site.name}}

网站域名

{{site.domain}}

邮箱

{{site.email}}

微信

{{site.wx}}

icp备案号

{{site.icp}}

站点统计

{{site.code}}

静态资源目录

{{base_url}}

标签列表

{{each tag}}

{{$value.name}}

{{/each}}

引入模板

{{include './common/模板名称.html'}}

常用模板

{{include './common/header.html'}}

{{include './common/footer.html'}}

{{include './common/nav.html'}}

{{include './common/meta.html'}}

{{include './common/css.html'}}

{{include './common/js.html'}}

碎片

{{@ frag['名称']}}

chancms源码下载地址:https://gitee.com/yanyutao0402/ChanCMS

chancms官方网站:https://www.chancms.top/

最新文章