Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
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
Building Serverless AI Memory with Mastra × AWS
vvatanabe
0
320
半年で、AIゼロ知識から AI中心開発組織の変革担当に至るまで
rfdnxbro
0
120
AlmaLinux + KVM + Cockpit で始めるお手軽仮想化基盤 ~ 開発環境などでの利用を想定して ~
koedoyoshida
0
150
AgentCoreとStrandsで社内d払いナレッジボットを作った話
motojimayu
1
720
New Relic 1 年生の振り返りと Cloud Cost Intelligence について #NRUG
play_inc
0
200
Identity Management for Agentic AI 解説
fujie
0
370
AI with TiDD
shiraji
1
240
Strands AgentsとNova 2 SonicでS2Sを実践してみた
yama3133
1
1.6k
Agent Skillsがハーネスの垣根を超える日
gotalab555
5
3.6k
_第4回__AIxIoTビジネス共創ラボ紹介資料_20251203.pdf
iotcomjpadmin
0
120
mairuでつくるクレデンシャルレス開発環境 / Credential-less development environment using Mailru
mirakui
5
590
SREには開発組織全体で向き合う
koh_naga
0
410
Featured
See All Featured
Between Models and Reality
mayunak
0
150
[SF Ruby Conf 2025] Rails X
palkan
0
550
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
Java REST API Framework Comparison - PWX 2021
mraible
34
9k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
150
Art, The Web, and Tiny UX
lynnandtonic
304
21k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.1k
The agentic SEO stack - context over prompts
schlessera
0
550
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
1
200
Statistics for Hackers
jakevdp
799
230k
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