Express进阶

实现一个项目,功能主要包括:

  • 实现认证
  • URL路由
  • 创建REST API
  • 处理错误

数据库采用redis,node模块选择node_redis
官网下载redis之后需要先编译。同时使用bcrypt对用户密码做加盐哈希运算。使用bcrypt后会有个dyld: lazy symbol binding failed: Symbol not found,使用npm rebuild bcrypt --build-from-source解决。
关于函数式编程,多异步嵌套使用:
1.每个函数只关心自己的功能;
2.注意顶层函数和末层函数的参数传递关系,和参数可见区域。
3.区分新添的函数到底是不是放在prototype里。
User.get() User.prototype.get() 类比类方法和实例方法。

当查找不存在的键时,Redis会给你一个空的哈希值,故不要用user来判断,用user.id。

  • 去express官网或者github查询中间件信息
  • 拓展res和req的原型方法
// 拓展res方法
var res = express.response
// 将指定的session注入session
res.message = function(msg,type){
  type = type || 'info'
  var sess = this.req.session
  sess.messages = sess.messages || []
  sess.messages.push({type,string:msg})
}
  • body-parser和formidble处理post
  • 数据库操作封装在M层
  • 服务端session和客户端session
  • res.redirect('back')用于post表单校验失败重定向回来
  • redis和MongoDB操作和GUI
  • react-redux-express项目模板
    https://github.com/erikras/react-redux-universal-hot-example
  • session和登录逻辑判断user中间件

你可能感兴趣的:(Express进阶)