Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

Node way

4 205 vues

Publié le

Publié dans : Technologie
  • Follow the link, new dating source: ❤❤❤ http://bit.ly/369VOVb ❤❤❤
       Répondre 
    Voulez-vous vraiment ?  Oui  Non
    Votre message apparaîtra ici
  • Dating direct: ♥♥♥ http://bit.ly/369VOVb ♥♥♥
       Répondre 
    Voulez-vous vraiment ?  Oui  Non
    Votre message apparaîtra ici

Node way

  1. 1. Node 技术栈实践 张宇⾠辰 (pw) @ 猿题库
  2. 2. 后端 前端 ? Java/Python/PHP … HTML/CSS/JavaScript…
  3. 3. 猿题库前端进化之路
  4. 4. Node 实践中的那些坑
  5. 5. 后端 前端 ? Java/Python/PHP … HTML/CSS/JavaScript…
  6. 6. 服务器 数据库浏览器 模板 静态资源
  7. 7. 服务器 数据库浏览器 模板 静态资源 后端 前端
  8. 8. 服务器 数据库浏览器 模板 静态资源 后端 前端
  9. 9. 服务器 数据库浏览器 模板 静态资源 后端 前端灰⾊色地带
  10. 10. 服务器 数据库 模板 后端 前端 ⽤用接⼝口来解决问题
  11. 11. 服务器 数据库 模板 后端 前端 前端包圆
  12. 12. 猿题库前端进化之路
  13. 13. CSS / JS / IMG Java HTML Template 猿题库
  14. 14. CSS / JS / IMG Java HTML Tmpl 主站 CSS / JS / IMG Java HTML Tmpl 公务员 CSS / JS / IMG Java HTML Tmpl 司法考试 CSS / JS / IMG Java HTML Tmpl ⾼高考
  15. 15. Java 主站 CSS / JS / IMG Java HTML Tmpl 公务员 Java 司法考试 Java ⾼高考 前端代码
  16. 16. Java 主站 CSS / JS / IMG Java HTML Tmpl 公务员 Java 司法考试 Java ⾼高考 前端服务器 Node
  17. 17. Java 主站 CSS / JS / IMG Java HTML Tmpl 公务员 Java 司法考试 Java ⾼高考 前端服务器 Node 后端 前端 HTTP
  18. 18. 服务器 数据库 模板 后端 前端 前端包圆 (By Node)
  19. 19. 那些坑 • HTTP • 异常处理 • 内存泄露 • 多核优化, 部署 • ⼀一些⼯工具: 开发, 调试, 性能调优
  20. 20. n 2n 2n n client api request Node API ServerNginx
  21. 21. Node API ServerNginx n 2n 2n n Nginx client api request
  22. 22. NginxNode API Server API Server API Server Nginx 10.0.1.3 yuantiku.com /api /
  23. 23. http.globalAgent.maxSockets = Infinity;
  24. 24. var agent = new http.Agent({ maxSockets: 2 }); ! req.request = request.defaults({ pool: agent });
  25. 25. 那些坑 • HTTP • 异常处理 • 内存泄露 • 多核优化, 部署 • ⼀一些⼯工具: 开发, 调试, 性能调优
  26. 26. app.get('/foo', function (req, res) { throw new Error('foo'); }); ! app.use(function (err, req, res, next) { res.send(500, err.message); });
  27. 27. app.get('/bar', function (req, res) { process.nextTick(function () { throw new Error(‘bar'); // 异步函数中的异常 }); });
  28. 28. process.on('uncaughtException', function () { return; });
  29. 29. Express Domain http://lostjs.com/2014/01/25/handle-exception-in-node/
  30. 30. 那些坑 • HTTP • 异常处理 • 内存泄露 • 多核优化, 部署 • ⼀一些⼯工具: 开发, 调试, 性能调优
  31. 31. var val = 'hello world'; function outer() { var val = 'bar'; return function inner() { return val; }; } global.inner = outer();
  32. 32. var getUserData = (function () { var cache = {}; return function (userId, callback) { if (cache[id]) { process.nextTick(function () { callback(cache[id]); }); return; } getUser(id, function (data) { cache[id] = data; callback(data); }); }; }());
  33. 33. var getUserData = (function () { var cache = new LRU({max: 100}); return function (userId, callback) { if (cache.has(id)) { var user = cache.get(‘id’); process.nextTick(function () { callback(user); }); return; } getUser(id, function (data) { cache.set(id, data); callback(data); }); }; }());
  34. 34. app.get(‘/users/:id’, function (req, res) { getUser(function (req.param(‘id’), data) { user = data; getOrderByUser(user.id, function (order) { res.render({ user: user, order: order }); }); });
 });
  35. 35. app.get(‘/users/:id’, function (req, res) { getUser(function (req.param(‘id’), data) { user = data; getOrderByUser(user.id, function (order) { res.render({ user: user, order: order }); }); });
 });
  36. 36. app.get(‘/users/:id’, function (req, res) { getUser(function (req.param(‘id’), data) { var user = data; getOrderByUser(user.id, function (order) { res.render({ user: user, order: order }); }); });
 });
  37. 37. app.get(‘/users/:id’, function (req, res) { getUser(function (req.param(‘id’), data) { var user = data; getOrderByUser(user.id, function (order) { res.render({ user: user, order: order }); }); });
 }); ‘use strict’;
  38. 38. 那些坑 • HTTP • 异常处理 • 内存泄露 • 多核优化, 部署 • ⼀一些⼯工具: 开发, 调试, 性能调优
  39. 39. • node • pm2 • NODE_ENV
  40. 40. 那些坑 • HTTP • 异常处理 • 内存泄露 • 多核优化, 部署 • ⼀一些⼯工具: 开发, 调试, 性能调优
  41. 41. • npm • node inspector • webkit-devtools-agent • console.trace
  42. 42. perfectworks@gmail.com @__pw__ lostjs.com

×