Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
使用 Node.js 构建 Web 开发解决方案-EMBBNUX
Search
Embbnux Ji
October 21, 2016
Technology
0
130
使用 Node.js 构建 Web 开发解决方案-EMBBNUX
使用 Node.js 构建 Web 开发解决方案, 讲诉如何用 koa 从零构建一个web 开发框架
Embbnux Ji
October 21, 2016
Tweet
Share
Other Decks in Technology
See All in Technology
NewSQL Landscape
oracle4engineer
PRO
2
2.5k
Autonomous Database Cloud 技術詳細 / adb-s_technical_detail_jp
oracle4engineer
PRO
15
35k
Azureの基本的な権限管理の勉強会
yhana
1
2.2k
自らを知り外と繋がる、日経のエンジニア採用とDevRel活動/devreljp92
nishiuma
2
190
同じ様なUIをiOS/Android間で合わせるヒントNo.2
fumiyasac0921
1
110
20分で完全に理解するGrafanaダッシュボード
hamadakoji
5
990
AWSに詳しくない人でも始められるコスト最適化ガイド
yuhta28
2
420
TiDBにおけるテーブル設計と最適化の事例
cygames
0
200
いいたいことちゃんという
tkengo
0
260
AWSやJAWS-UGとの出会いを振り返る
yoyoyopg
1
180
LLM開発・活用の舞台裏@2024.04.25
yushin_n
3
1.4k
Building a RAG-poweredAI chat appwith Python and VS Code
pamelafox
0
180
Featured
See All Featured
Rebuilding a faster, lazier Slack
samanthasiow
74
8.3k
RailsConf 2023
tenderlove
9
570
Happy Clients
brianwarren
92
6.4k
Intergalactic Javascript Robots from Outer Space
tanoku
266
26k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
123
39k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
9
1.3k
The Pragmatic Product Professional
lauravandoore
26
5.8k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
8
3.4k
Optimising Largest Contentful Paint
csswizardry
13
2.4k
Fireside Chat
paigeccino
22
2.6k
Git: the NoSQL Database
bkeepers
PRO
423
63k
In The Pink: A Labor of Love
frogandcode
138
21k
Transcript
使⽤用 Node.js 构建 Web 开发解决⽅方案 Embbnux Ji
About Me • embbnux@all • github: github.com/embbnux • 个⼈人博客: www.embbnux.com
• 开源 Web 项⽬目: github.com/embbnux/kails • 标签: docker, rails, node.js, 开源硬件
Why Node.js ?
Why Node.js ? • 跑在服务器器上的 v8 引擎 • 事件驱动 •
⾮非阻塞 IO • 单线程 • 活跃的社区,300000+ 个npm 包
⾼高性能,轻量量 天猫双⼗十⼀一数据,引⾃自<dead-horse : ⽤用 Node.js 构建海海量量⻚页⾯面渲染服务 >
框架选择 • Express • 优点:使⽤用⼴广泛,功能⼤大⽽而多,⾃自带路路由模版等。 • 确定: 掌控⼒力力低,原开发⼈人⻢马跑路路!
框架选择 • connect • 精简的内核,兼容 express 中间件 • 组件⾃自⼰己实现,⾃自由掌控 •
使⽤用⼈人较少
框架选择 • koa • express 原班⼈人⻢马新作 • es6 特性,基于 generator
• 灵活的中间件模型
koa 与 express • express: • 中间件顺序执⾏行行,已经发送的body⽆无法修改 • koa: •
包裹着后⾯面所有中间件的修饰器器 • 所有中间件执⾏行行完发送请求头
koa 实战 • 官⽅方例例程:
啥?⼀一切从头开始!
架构 还是 MVC
路路由分发 还是 restful !
async 和 await ⽀支持 • 为了了更更加简单好⽤用的异步编程, 以及使⽤用 koa 2 •
同步写法的异步编程,拒绝 callback
环境 • development 环境 • test 环境 • production 环境
接⼊入redis • redis 既可以当 web 的缓存, 加速⽹网络请求 • 也可以当 session
store, 加速 session 存取
利利⽤用中间件特性 提⾼高代码复⽤用率
react 前后端同构 浏览器器与服务器器模板复⽤用
⾼高性能中间层 • 利利⽤用 node.js ⾮非阻塞 io 特性构建⾼高性能中间层 • 在服务器器端不不会有并发⽹网络请求数的限制, •
可以同时并发发起多个⽹网络请求,时间为 max(1 .. n)
⼯工程化 • 测试(单元测试 集成测试):mocha, chai • lint: eslint 规划你的 js
代码 • ci ⾃自动测试 ⾃自动集成 ⾃自动部署发布
欢迎交流 参考[1]: dead-horse - ⽤用 Node.js 构建海海量量⻚页⾯面渲染服务 参考[2]: dead-horse -
Node.js 掠影 kails: github.com/embbnux/kails 欢迎 pull request 和 star blog: www.embbnux.com