现在的位置: 首页 > 综合 > 正文

Node.js实战 笔记(内容很好懂,阅读起来很流畅)

2016年07月30日 ⁄ 综合 ⁄ 共 1413字 ⁄ 字号 评论关闭

Node.js实战

跳转至:
导航

搜索
  1. Node基础

    1. DIRT

      1. Browserling
        https://browserling.com
      2. StackVM
        https://github.com/substack/stackvm
    2. module.exports
    3. p53 用闭包冻结变量的当前状态值:(function(c){...})(arg1);
    4. 串行/并行流程控制
    5. p71 res.setHeader("Content-Length", Buffer.byteLength(body));
    6. Stream.pipe()
    7. p77 所有继承了EventEmitter的类(如stream)都可能发出error事件
    8. querystring.parse()
    9. 用formidable处理文件上传:
      1. var form = new formidable.IncomingForm();
      2. form.on('file', function(name, file){ ... }); //其他事件:field, progress
    10. https(略)
    11. 数据库:mysql / node-postgres
    12. NoSQL:redis / MongoDB
      1. 提高性能:hiredis
  2. Connect
    1. p114 为什么中间件的顺序很重要:connect().use(logger).use(restrictFileAccess).... next()
    2. 挂载(集成了URL路由?)
    3. 可配置中间件*
    4. router
      1. p122 你可以利用闭包在外层函数中缓存正则表达式
    5. rewrite
    6. errHandler: function(err, req, res, next){ ... }
  3. Connect自带的中间件:略
    1. 解析:cookieParser bodyParser limit query
    2. logger favicon methodOverride vhost session
    3. 安全:basicAuth csrf errorHandler\
    4. 静态文件:static compress directory
  4. Express
    1. __dirname
    2. res.render()
    3. 视图查找:index.ejs
    4. p180 res.sendfile/download
    5. bcrypt:genSalt()
    6. 特定路由的中间件校验
      1. app.post('/post', requireEntryTitle, requireLengthAbove(4), entries.submit);
    7. 分页
      1. API设计:app.get('/', page(Entry.count, 5), entries.list);

        1. --> '/:page?'
    8. REST
      1. User.prototype.toJSON = ...
      2. 启用内容协商
    9. 错误处理
  5. 测试Node:内置assert nodeunit Mocha(可检测全局变量泄露?) Vows should.js
    1. 验收测试:Tobi(模拟浏览器,htmlparser) Soda(远程控制,Selenium RC)
  6. Web模板(EJS)
    1. 如果不想转义模板参数:var template = '<%- msg %>';(默认的<%=会转义以防止XSS)
    2. 过滤器:<%=: title | truncate:20 %>
  7. Mustache与Hogan(略)
    1. {{ }}的风格来自django?
  8. Jade(这个倒是有点意思,类似于yaml)
  9. 部署
  10. Socket.IO
    1. 修改CSS触发浏览器重新加载
  11. OS交互
    1. child_process

      1. exec():缓冲命令结果
      2. spawn():繁衍带有流接口的命令
      3. 利用fork()分散负载
  12. 生态系统 

抱歉!评论已关闭.