Express
Express 周边的中间件
express4.0不再捆绑connect ,所以有些中间件,需要手动安装引用 app.use()
- body-parser
- compress 用gzip压缩
- cookie-parser
- cookie-session
- express-session 提供会话支持,默认存在内存,可以配置为存在session
- csurf
- errorhandler
- static-favicon
- morgan 日志中间件
- query
- vhost
路由
- 子域名 使用vhost中间件
- 自动化渲染html
好处是不用给每一个文件添加一个路由 - 路由组织方式
- 命名空间路由 express-namespace
- 随机应变路由
handlerbars模板引擎
REST API
提供数据和服务
跨域
npm install --save cors发送http请求
使用postman插件自动化测试API服务
npm install restler --saveAPI路由
/api 与常规网站路由隔离开来使用子域名
npm install --save vhost
将abc.com/api 变为 api.abc.comrest插件
npm install --save connect-rest
静态内容
- Expires/cache-control
- Last-Modified/ETag
- 静态资源放到cdn上
- 文件加指纹
邮件服务
nodemailer
安全
处理跨站请求伪造
使用csurf插件使用https
从ca那里得到一个ssl证书
var https = require('https')
var options = {
key: fs.readFileSync(__dirname + 'ca.pem'),
cert: fs.readFileSync(__dirname + 'ca.crt')
}
https.createServer(options, app).listen(app.get('port'), function(){
console.log('app started at ' + app.get('port'))
})
基本的basicAuth中间件
类似路由页面那个使用Bcrypt加密密码
Bcrypt是一个加盐的哈希函数,用来对密码做哈希处理的第三方模块
生产环境部署
进程管理
pm2APM检测
newrelic集群
多核cpu 可以设置cluster多台服务器?
减少日志输出
morgan设置为tiny将邮件作为网站监测工具
nginx代理80端口转发
nginx处理静态资源
调试
- console.log
- debugger
调试工具
- 使用vscode调试
- 使用webstorm调试
- node-inspector
- 内置调试器 node debug app.js
部署
- https
- 域名注册
- 主机托管
- heroku
测试
- 单元测试
- assert模块
- Mocha
- Vows
- should.js
- 验收测试
功能测试 利用自动化测试 不需要人工测试
- TObi
- Soda + selenium