开发环境
Node.js: 6.9.1
MongoDB: 3.2.10
Express: 4.14.0
准备工作
目录结构
创建文件夹 myblog , 在 myblog 下面创建以下目录:
models
: 存放操作数据库的文件public
: 存放静态文件,如样式、图片等routes
: 存放路由文件views
: 存放模板文件index.js
: 程序主文件package.json
: 存储项目名、描述、作者、依赖等等信息
遵循了 MVC(模型(model)-视图(view)-控制器(controller/route)) 的开发模式。
安装依赖
express
: web 框架express-session
: session 中间件connect-mongo
: 将 session 存储于 mongodb,结合 express-session 使用connect-flash
: 页面通知提示的中间件,基于 session 实现ejs
: 模板express-formidable
: 接收表单及文件的上传中间件config-lite
: 读取配置文件marked
: markdown 解析moment
: 时间格式化mongolass
: mongodb 驱动objectid-to-timestamp
: 根据 ObjectId 生成时间戳sha1
: sha1 加密,用于密码加密winston
: 日志express-winston
: 基于 winston 的用于 express 的日志中间件
配置文件
不管大项目还是小项目,将配置文件与代码分离是一个好的做法。我们通常会将配置写到一个配置文件中,如 config.json
或者 config.js
,并存放在根目录。通常会有许多开发环境,如本地开发环境、测试环境和线上环境,不同的环境配置不同,不可能每次部署都去修改或者引用 config.test.js
或者 config.production.js
。config-lite
模块正是所需要的。
如果程序以 NODE_ENV=test node app
启动,则通过 require('config-lite')
会依次降级查找 config/test.js
、config/test.json
、config/test.node
、config/test.yml
、config/test.yaml
并合并 default 配置; 如果程序以 NODE_ENV=production node app
启动,则通过 require('config-lite')
会依次降级查找 config/production.js
、config/production.json
、config/production.node
、config/production.yml
、config/production.yaml
并合并 default 配置。
在 myblog
下新建 config
目录,在该目录下新建 default.js
,添加代码
config/default.js
module.exports = {
port: 3000,
session: {
secret: 'myblog',
key: 'blog',
maxAge: 2592000000
},
mongodb: 'mongodb://localhost:27017/myblog'
}
配置释义:
port
: 程序启动要监听的端口号session
:express-session
的配置信息mongodb
:mongodb
的地址,myblog
的 db 名