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
150
使用 Node.js 构建 Web 开发解决方案-EMBBNUX
使用 Node.js 构建 Web 开发解决方案, 讲诉如何用 koa 从零构建一个web 开发框架
Embbnux Ji
October 21, 2016
Tweet
Share
Other Decks in Technology
See All in Technology
Meshy Proプラン課金した
henjin0
0
240
usermode linux without MMU - fosdem2026 kernel devroom
thehajime
0
210
M&A 後の統合をどう進めるか ─ ナレッジワーク × Poetics が実践した組織とシステムの融合
kworkdev
PRO
1
390
15 years with Rails and DDD (AI Edition)
andrzejkrzywda
0
170
サイボウズ 開発本部採用ピッチ / Cybozu Engineer Recruit
cybozuinsideout
PRO
10
73k
Agile Leadership Summit Keynote 2026
m_seki
1
290
モダンUIでフルサーバーレスなAIエージェントをAmplifyとCDKでサクッとデプロイしよう
minorun365
2
130
Azure Durable Functions で作った NL2SQL Agent の精度向上に取り組んだ話/jat08
thara0402
0
140
日本語テキストと音楽の対照学習の技術とその応用
lycorptech_jp
PRO
1
420
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
10k
あたらしい上流工程の形。 0日導入からはじめるAI駆動PM
kumaiu
5
750
顧客の言葉を、そのまま信じない勇気
yamatai1212
1
330
Featured
See All Featured
For a Future-Friendly Web
brad_frost
182
10k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
7.9k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.3k
Designing Powerful Visuals for Engaging Learning
tmiket
0
220
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
910
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
0
2.3k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
1.9k
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.3k
Building Applications with DynamoDB
mza
96
6.9k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
100
Building the Perfect Custom Keyboard
takai
2
680
Joys of Absence: A Defence of Solitary Play
codingconduct
1
290
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