# VNode-Blog-Express **Repository Path**: noviceLuo/VNode-Blog-Express ## Basic Information - **Project Name**: VNode-Blog-Express - **Description**: 基于Express的博客系统 - **Primary Language**: NodeJS - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2019-07-12 - **Last Updated**: 2021-11-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # VNode-Blog-Express #### 介绍 基于Express的博客系统 #### 软件架构 + 架构使用Node + Express + 界面使用Ejs + 数据库 MySql、Redis + 工具 nginx-反向代理、pm2-部署环境、记录console.log、console.error日志 #### 安装教程 ``` 1. 项目初始化 yarn || yarn install 2. 项目运行 开发环境 yarn dev 生产环境 yarn pro 3. 安装插件 yarn add [package] yarn add [package]@[version] yarn add [package] --dev 升级 yarn upgrade [package] 移除 yarn remove [package] ``` #### 使用技术点 + 架构使用Node + Express + 界面使用Ejs + 监听文件改变重新渲染 nodemon + 跨平台设置及使用环境变量 cross-env + 注册、登录密码使用md5加密 + 登录使用Session + Cookie + redis ``` 连接redis=>创建session; 通过客户端Cookie解析redis获取数据,挂载在session; 通过maxAge: (1 * 60 * 1000) 设置有效时间,当超时redis会自动清除当前数据; 总结:数据都缓存到Redis上面,session只是通过获取Redis的数据挂载到req上,所以不会导致用户量加大内存和CPU不足情况,Redis的数据获取后才会清除 ``` #### 使用说明 ``` 设置模板 app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'ejs'); 使用模板 // 第一个参数: 页面名称 // 第二个参数: 渲染数据 res.render('error', {}); ``` ``` 日志记录 const ENV = process.env.NODE_ENV if (ENV !== 'production') { // 开发环境 /测试环境 -控制台输出 app.use(logger('dev')); } else { // 线上环境-写入文件中 const logFileName = path.join(__dirname, 'logs', 'access.log'); const writeStream = fs.createWriteStream(logFileName, { flags: 'a' }); app.use(logger('combined', { stream: writeStream })); } ```