从本章开始,正式学习如何使用 Nodejs + Express + Mysql 搭建一个博客。
开发环境
首先说下开发环境安装的核心依赖版本:
Node.js: 5.10.1
Mysql: 5.6.25
Express: 4.14.0
目录准备
mkdir blogNodejs // 创建 blog 文件夹
cd blogNodejs // 进入 blog 目录
npm init // 初始化 blog 空项目
然后就根据提示填写一些项目初始化信息,然后回车创建成功
目录介绍
-bin/www 项目启动必备文件
-configs 存放配置文件
-controllers 控制层
-libs 存放一些工具函数 js 等
-locales 存放 i18n 国际化 json
-logs 存放错误日志
-middlewares 存放中间件
-models 存放数据库文件
-public 存放静态文件,如样式、图片等(由于咱们主要使用 express 书写后端 api 所以该文件夹仅作为备用)-routes 存放路由文件
-services 存放服务文件
-views 存放模板文件(由于咱们主要使用 express 书写后端 api 所以该文件夹仅作为备用)-app.js 主入口文件
-package.json 存储项目名、描述、作者、依赖等等信息
-readme.md 项目介绍等
为了方便代码多地点编写,我将其放到了 github 上
https://github.com/wangwenjie…
安装依赖模块
为了避免各位安装版本和我讲述的依赖版本不一致,而造成一些小错误;
现在将 package.json 供大家下载覆盖 blog 根目录下的 package.json
对应模块的用处:
bluebird:老牌 Promise 挽救回调地狱
co:搭配 bluebird 让异步写起来像同步
blueimp-md5:用于密码 md5 加密(后面会介绍)body-parser:设置 body 解析数据类型
config-lite:配置文件(后面会介绍)(可以有效区分开发 dev、测试 test、预上线 st、正式 product 环境)cors:设置跨域白名单(后面会介绍)debug:控制台 debug
ejs:ejs 模板
winston:日志
express-winston:基于 winston 的用于 express 的日志中间件
i18n:i18n 国际化
jsonwebtoken:前后端分离 jwt token(后面会介绍)morgan:开发模式下 log
multer: 文件上传
mysql: mysql
node-schedule: 定时任务 schedule(后面会介绍)nodemailer:邮箱服务(后面会介绍)sequelize:mysql 框架(后面会介绍)underscore:js 工具函数
当前 blog 目录下控制台运行以下命令 安装所需的模块:
npm install
如果遇到部分依赖被 qiang,请使用
cnpm install
配置文件
不管是小项目还是大项目,将配置与代码分离是一个非常好的做法。我们通常将配置写到一个配置文件里,如 config.js 或 config.json,并放到项目的根目录下。但通常我们都会有许多环境,如本地开发环境、测试环境和线上环境等,不同的环境的配置不同,我们不可能每次部署时都要去修改引用 config.test.js 或者 config.production.js。
config-lite 模块正是你需要的。– 摘自 nswbmw/N-blog
config-lite 是一个轻量的读取配置文件的模块。config-lite 会根据环境变量(NODE_ENV)的不同从当前执行进程目录下的 config 目录加载不同的配置文件。如果不设置 NODE_ENV,则读取默认的 default 配置文件,如果设置了 NODE_ENV,则会合并指定的配置文件和 default 配置文件作为配置,config-lite 支持 .js、.json、.node、.yml、.yaml 后缀的文件。
如果程序以 NODE_ENV=test node app 启动,则 config-lite 会依次降级查找 config/test.js、config/test.json、config/test.node、config/test.yml、config/test.yaml 并合并 default 配置;
如果程序以 NODE_ENV=production node app 启动,则 config-lite 会依次降级查找 config/production.js、config/production.json、config/production.node、config/production.yml、config/production.yaml 并合并 default 配置。
在 blogNodejs/config 目录下新建 default.js,添加如下代码:
config/default.js
module.exports = {
env: "dev",// 当前环境
mysql: { //mysql 数据库
host: '127.0.0.1',
user: 'root', // 你安装的数据库用户名
password: 'root', // 你安装的 mysql 数据库密码
database: 'blog', // 数据库
port: 3306, // 端口
},
};
配置释义:
1、env:当前环境,便于后面业务中判断
2、mysql:数据库连接配置
功能梳理
博客系统 我不想搞得太复杂,就只实现基础功能,看完教程你们可以自己延伸