开发环境
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 名