Crowi 开源项目教程
crowiCrowi – The Markdown Wiki – Empower the team with sharing your knowledge项目地址:https://gitcode.com/gh_mirrors/cr/crowi
1. 项目的目录结构及介绍
Crowi 项目的目录结构如下:
crowi/
├── app/
│ ├── auth/
│ ├── models/
│ ├── routes/
│ ├── utils/
│ └── views/
├── config/
│ ├── env/
│ ├── initializers/
│ └── production.js
├── lib/
│ ├── api/
│ ├── service/
│ └── util/
├── public/
│ ├── fonts/
│ ├── images/
│ ├── js/
│ └── stylesheets/
├── scripts/
│ ├── docker/
│ ├── init/
│ └── update/
├── test/
│ ├── fixtures/
│ ├── integration/
│ ├── unit/
│ └── utils/
├── .babelrc
├── .dockerignore
├── .editorconfig
├── .env.example
├── .eslintrc
├── .gitignore
├── .npmrc
├── .travis.yml
├── Dockerfile
├── LICENSE
├── README.md
├── app.js
├── package.json
└── yarn.lock
目录介绍
app/
: 包含应用程序的主要代码,如认证、模型、路由和视图。config/
: 包含配置文件,如环境配置和初始化文件。lib/
: 包含API、服务和工具函数。public/
: 包含静态资源,如字体、图像、JavaScript和样式表。scripts/
: 包含用于Docker、初始化和更新的脚本。test/
: 包含单元测试、集成测试和测试工具。- 根目录下的文件包括配置文件、Dockerfile、许可证、README.md、主应用程序文件和包管理文件。
2. 项目的启动文件介绍
Crowi 项目的主启动文件是 app.js
。这个文件负责初始化应用程序并启动服务器。以下是 app.js
的主要内容:
const express = require('express');
const path = require('path');
const logger = require('morgan');
const cookieParser = require('cookie-parser');
const bodyParser = require('body-parser');
const mongoose = require('mongoose');
const config = require('./config');
const app = express();
// 配置视图引擎
app.set('views', path.join(__dirname, 'app/views'));
app.set('view engine', 'jade');
// 使用中间件
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
// 连接数据库
mongoose.connect(config.db.uri, config.db.options);
// 加载路由
require('./app/routes')(app);
// 捕获404并转发到错误处理程序
app.use((req, res, next) => {
const err = new Error('Not Found');
err.status = 404;
next(err);
});
// 错误处理程序
app.use((err, req, res, next) => {
res.status(err.status || 500);
res.render('error', {
message: err.message,
error: app.get('env') === 'development' ? err : {}
});
});
module.exports = app;
启动文件介绍
app.js
初始化 Express 应用程序,配置视图引擎和中间件。- 连接到 MongoDB 数据库。
- 加载应用程序的路由。
- 处理404错误和通用错误。
3. 项目的配置文件介绍
Crowi 项目的配置文件主要位于 config/
目录下。以下是主要的配置文件:
config/env/
这个目录包含不同环境的配置文件,如 development.js
、production.js
和 test.js
。每个文件定义了特定环境的配置参数。
config/initializers/
这个目录包含初始化文件,如 passport.js
和 session.js
,用于配置 Passport 认证和会话管理。
config/production.js
crowiCrowi – The Markdown Wiki – Empower the team with sharing your knowledge项目地址:https://gitcode.com/gh_mirrors/cr/crowi