狠狠撸

狠狠撸Share a Scribd company logo
Node: Getting Started
主要内容
? 基础概念
? 创建Node应用的基础设施
? Node 应用简单示例
? Express Web 框架
什么是Node?
Node 是建立在Chrome浏览器所使用的JavaScript运行环
境上,用来创建快速,可扩展的Web应用程序的平台。
Node的几个特点
? event-driven
? non-blocking I/O model
? single-threaded
? lightweight and efficient
最简单的服务器
app.js:
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello Worldn');
}).listen(1337, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');
在终端运行:
node app.js
> Server running at http://127.0.0.1:1337/
REPL
REPL(发音 “repple”): Read-Eval-Print-Loop,
a Nodejs shell.
创建Node应用的基础设施
? 核心模块
? 路由控制
? 数据持久化
? 中间件
? 其他模块
核心模块
? EventEmitter 模块
? HTTP(S) 模块
? File System 文件系统模块
? Utilities 实用对象模块:
util.inherits(constructor, super),
util.isArray(object), ...
? Socket, Stream 模块
? 全局(global) 对象:
process, Buffer, …
路由控制
路由处理来自一个URL的数据请求。
路由方法的主要作用是在URI中提取我们需要的信息,通
常使用一些模式匹配,使用这些信息来处理相应的动作,
并把信息传递给处理程序。
创建 RESTful Web API
REST (Representational State Transfer) 意味着支持 HTTP
PUT 和 DELETE 方法,同时还有 GET 和 POST方法的能力。
Express 路由使用 app.VERB() 方法来管理。VERB指HTTP
方法之一,例如 app.get(), app.put().
Http Verb Route Intro
GET /user/:id 用Id读取用户信息
POST /create 创建一个新用户
PUT /update/:id 修改用户信息
DELETE /delete/:id 删除一个用户
数据持久化
MongoDB,document-oriented storage.
MongoDB是面向文档的数据存储,是一种NoSQL数据库。
其结构类似于:db -> collection -> document
Redis,advanced key/value store.
Redis 提供了高性能的键/值对存储。
MongoDB
MongoDB使用BSON格式来存储数据。在Node中使用
MongoDB有两种基本方式,引入两个不同的模块
1. MongoDB Native Node.js Driver, 原生MongDB为Node开发的驱动模块。
2. Mongoose, 提供ORM(Object Relational Mapping)支持的对象建模工具。
相比而言,Mongoose提供了更加抽象的接口,使用
Schema 对象定义数据模型。
定义数据模型和实例
定义数据模型:
var HobbySchema = new Schema({
name: { type: String, required: true, trim:
true }
});
var UserSchema = new Schema({
id: { type: Number, required: true, trim: true,
unique: true },
name: { type: String, required: true, trim:
true },
birthday: Date,
hobbies: [HobbySchema]
});
var UserModel = model(‘UserModel’, UserSchema);
创建对象实例:
var lily = new UserModel({
id: lily,
name: Lily Allen,
birthday: new Date(2012, 11, 20),
hobbies: ['reading', 'music']
});
数据库连接与操作
连接到mongoose数据库
mongoose.connect(‘mongodb://127.0.0.1/mydb’);
或
mongoose.connect(‘'mongodb://username:passwor
d@host:port/database?’);
mongoose.connection.on(‘open’, function() {
console.log(‘Connected to Mongoose’);
});
数据库操作:
lily.save(function(err, data) { });
UserModel.find({id: 'lily'},
function(err, doc) { });
UserModel.update({id: 'lily'},
function(err, doc) { });
UserModel.remove({id: 'lily'},
function(err, doc) { });
Redis
Redis 是一种键/值对数据存储(key/value store).
通常,Redis将数据存储于内存中,或被配置为使用虚拟内存。通过两种方式可
以实现数据持久化:使用快照的方式,将内存中的数据不断写入磁盘;或使用类
似MySQL的日志方式,记录每次更新的日志。前者性能较高,但是可能会引起一
定程度的数据丢失;后者相反。
创建一个Redis客户端:
var client = redis.createClient();
或者,带有三个可选的参数:
var client = redis.createClient(host, port, options);
中间件
中间件(Middleware, http://en.wikipedia.org/wiki/Middleware)
一般来讲,作为开发者,中间件是存在于你和底层系统之间的软件,系统可以指
操作系统或一些底层的技术。更具体地说,中间件是应用程序和底层系统之间的
通信链。
Connect (http://www.senchalabs.org/connect/)是为Node提供的一个可扩展的
HTTP服务框架,提供高性能的中间件。Connect中有10多个中间件,可以在应用
中使用其中的一个或多个。
例如,favicon, logger, static, bodyParser, methodOverride...
其他模块
socket.io (http://socket.io/)
Jade - template engine (http://jade-lang.com/)
underscore (https://npmjs.org/package/underscore)
辅助模块:url, path, querystring, ...
示例:创建一个文件服务器
所需模块:
? http, 创建服务器并监听请求
? path, 处理文件和路径
? fs, 提供文件系统读写等常用操作
http.createServer(function(req, res) {
// 当一个请求发生时,解析请求的URL确定文件的位置
// 检查并确认此文件的存在性
// 如果文件不存在作出相应的响应
// 如果文件存在,打开后读取数据
// 准备一个响应头
// 把文件写入响应体
… …
}.listen('8124')
Express Web 框架
Express 是一个简洁而灵活的Node应用框架, 提供了一系列
强大特性创建各种Web应用。
网站:http://expressjs.com/
项目:https://github.com/visionmedia/express
Express建立一个应用
用Express创建一个应用只需要一条简单的命令。程序会生成
一些基本目录和文件。
1. 创建一个应用(site):
> express site
目录结构(Express 3.1.0)
> express myapp
create : myapp
create : myapp/package.json
create : myapp/app.js
create : myapp/public
create : myapp/routes
create : myapp/routes/index.js
create : myapp/routes/user.js
create : myapp/views
create : myapp/views/layout.jade
create : myapp/views/index.jade
create : myapp/public/stylesheets
create : myapp/public/stylesheets/style.css
create : myapp/public/javascripts
create : myapp/public/images
2. 安装所需依赖
> npm install -d
3. 启动应用程序
> node app
package.json
example:
{
"name": "nodeapp"
, "description": "My first Node App."
, "version": "0.0.1“
, "author": "Madhusudhan Srinivasa <madhums8@gmail.com> (http://madhums.github.com)"
, "scripts": {
"start": "./node_modules/.bin/nodemon server.js"
}
, "dependencies": {
"express": "latest"
, "jade": "latest"
, "mongoose": "latest"
, "connect-mongo": "latest"
}
}
想了解更多package.json 和NPM的相关信息,请参考:
http://package.json.nodejitsu.com/
http://blog.nodejitsu.com/npm-cheatsheet
</thanks>

More Related Content

What's hot (20)

Script with engine
Script with engineScript with engine
Script with engine
Webrebuild
?
前端惭痴痴惭框架安全
前端惭痴痴惭框架安全前端惭痴痴惭框架安全
前端惭痴痴惭框架安全
Borg Han
?
Template mb-kao
Template mb-kaoTemplate mb-kao
Template mb-kao
xwcoder
?
Servlet & JSP 教學手冊第二版 - 第 4 章:會話管理
Servlet & JSP 教學手冊第二版 - 第 4 章:會話管理Servlet & JSP 教學手冊第二版 - 第 4 章:會話管理
Servlet & JSP 教學手冊第二版 - 第 4 章:會話管理
Justin Lin
?
苍辞诲别箩蝉开发飞别产站点
苍辞诲别箩蝉开发飞别产站点苍辞诲别箩蝉开发飞别产站点
苍辞诲别箩蝉开发飞别产站点
xiaojueqq12345
?
Node js实践
Node js实践Node js实践
Node js实践
jay li
?
Javascript autoload
Javascript autoloadJavascript autoload
Javascript autoload
jay li
?
编辑器设计Kissy editor
编辑器设计Kissy editor编辑器设计Kissy editor
编辑器设计Kissy editor
taobao.com
?
痴补谤苍颈蝉丑介绍
痴补谤苍颈蝉丑介绍痴补谤苍颈蝉丑介绍
痴补谤苍颈蝉丑介绍
fangdeng
?
编辑器设计U editor
编辑器设计U editor编辑器设计U editor
编辑器设计U editor
taobao.com
?
Backbone.js and MVW 101
Backbone.js and MVW 101Backbone.js and MVW 101
Backbone.js and MVW 101
Jollen Chen
?
How tovuejs
How tovuejsHow tovuejs
How tovuejs
Daniel Chou
?
AJAX Basic
AJAX BasicAJAX Basic
AJAX Basic
Ryan Chung
?
Ch03 請求與回應
Ch03 請求與回應Ch03 請求與回應
Ch03 請求與回應
Justin Lin
?
Vue for beginners
Vue for beginnersVue for beginners
Vue for beginners
m_catt
?
视图模式
视图模式视图模式
视图模式
Li Zhang
?
Intro-to-SeaJS
Intro-to-SeaJSIntro-to-SeaJS
Intro-to-SeaJS
lifesinger
?
Script with engine
Script with engineScript with engine
Script with engine
Webrebuild
?
前端惭痴痴惭框架安全
前端惭痴痴惭框架安全前端惭痴痴惭框架安全
前端惭痴痴惭框架安全
Borg Han
?
Template mb-kao
Template mb-kaoTemplate mb-kao
Template mb-kao
xwcoder
?
Servlet & JSP 教學手冊第二版 - 第 4 章:會話管理
Servlet & JSP 教學手冊第二版 - 第 4 章:會話管理Servlet & JSP 教學手冊第二版 - 第 4 章:會話管理
Servlet & JSP 教學手冊第二版 - 第 4 章:會話管理
Justin Lin
?
苍辞诲别箩蝉开发飞别产站点
苍辞诲别箩蝉开发飞别产站点苍辞诲别箩蝉开发飞别产站点
苍辞诲别箩蝉开发飞别产站点
xiaojueqq12345
?
Node js实践
Node js实践Node js实践
Node js实践
jay li
?
Javascript autoload
Javascript autoloadJavascript autoload
Javascript autoload
jay li
?
编辑器设计Kissy editor
编辑器设计Kissy editor编辑器设计Kissy editor
编辑器设计Kissy editor
taobao.com
?
痴补谤苍颈蝉丑介绍
痴补谤苍颈蝉丑介绍痴补谤苍颈蝉丑介绍
痴补谤苍颈蝉丑介绍
fangdeng
?
编辑器设计U editor
编辑器设计U editor编辑器设计U editor
编辑器设计U editor
taobao.com
?
Backbone.js and MVW 101
Backbone.js and MVW 101Backbone.js and MVW 101
Backbone.js and MVW 101
Jollen Chen
?
Ch03 請求與回應
Ch03 請求與回應Ch03 請求與回應
Ch03 請求與回應
Justin Lin
?
Vue for beginners
Vue for beginnersVue for beginners
Vue for beginners
m_catt
?

Viewers also liked (20)

Presentation of EOD - eBooks on demand service and network / Predstavitev sto...
Presentation of EOD - eBooks on demand service and network / Predstavitev sto...Presentation of EOD - eBooks on demand service and network / Predstavitev sto...
Presentation of EOD - eBooks on demand service and network / Predstavitev sto...
National and University Library
?
101學年度人文暨設計學院應外系月報表 9月份
101學年度人文暨設計學院應外系月報表 9月份101學年度人文暨設計學院應外系月報表 9月份
101學年度人文暨設計學院應外系月報表 9月份
景文科技大學 JUST
?
Природный газ
Природный газПриродный газ
Природный газ
VladimirOpa
?
Химические свойства бензола
Химические свойства бензолаХимические свойства бензола
Химические свойства бензола
VladimirOpa
?
Нервная система
Нервная системаНервная система
Нервная система
VladimirOpa
?
Родительское собрание
Родительское собраниеРодительское собрание
Родительское собрание
VladimirOpa
?
Telematics Munich 2011
Telematics Munich 2011Telematics Munich 2011
Telematics Munich 2011
RoryTelematics
?
3 d動畫影片分析
3 d動畫影片分析3 d動畫影片分析
3 d動畫影片分析
景文科技大學 JUST
?
Eigentrust (in Japanese)
Eigentrust (in Japanese)Eigentrust (in Japanese)
Eigentrust (in Japanese)
snarazaki
?
101景文科大硕士班暨硕士在职专班招生简章(公告)
101景文科大硕士班暨硕士在职专班招生简章(公告)101景文科大硕士班暨硕士在职专班招生简章(公告)
101景文科大硕士班暨硕士在职专班招生简章(公告)
景文科技大學 JUST
?
Media music magazine evaluation
Media music magazine evaluationMedia music magazine evaluation
Media music magazine evaluation
MoulayMiziroj
?
Front cover
Front coverFront cover
Front cover
MoulayMiziroj
?
Kratka EOD predstavitev (poster) / Short EOD presentation (poster), 2012
Kratka EOD predstavitev (poster) / Short EOD presentation (poster), 2012Kratka EOD predstavitev (poster) / Short EOD presentation (poster), 2012
Kratka EOD predstavitev (poster) / Short EOD presentation (poster), 2012
National and University Library
?
Contents
ContentsContents
Contents
MoulayMiziroj
?
Presentation of EOD - eBooks on demand service and network / Predstavitev sto...
Presentation of EOD - eBooks on demand service and network / Predstavitev sto...Presentation of EOD - eBooks on demand service and network / Predstavitev sto...
Presentation of EOD - eBooks on demand service and network / Predstavitev sto...
National and University Library
?
101學年度人文暨設計學院應外系月報表 9月份
101學年度人文暨設計學院應外系月報表 9月份101學年度人文暨設計學院應外系月報表 9月份
101學年度人文暨設計學院應外系月報表 9月份
景文科技大學 JUST
?
Природный газ
Природный газПриродный газ
Природный газ
VladimirOpa
?
Химические свойства бензола
Химические свойства бензолаХимические свойства бензола
Химические свойства бензола
VladimirOpa
?
Нервная система
Нервная системаНервная система
Нервная система
VladimirOpa
?
Родительское собрание
Родительское собраниеРодительское собрание
Родительское собрание
VladimirOpa
?
Eigentrust (in Japanese)
Eigentrust (in Japanese)Eigentrust (in Japanese)
Eigentrust (in Japanese)
snarazaki
?
101景文科大硕士班暨硕士在职专班招生简章(公告)
101景文科大硕士班暨硕士在职专班招生简章(公告)101景文科大硕士班暨硕士在职专班招生简章(公告)
101景文科大硕士班暨硕士在职专班招生简章(公告)
景文科技大學 JUST
?
Media music magazine evaluation
Media music magazine evaluationMedia music magazine evaluation
Media music magazine evaluation
MoulayMiziroj
?
Kratka EOD predstavitev (poster) / Short EOD presentation (poster), 2012
Kratka EOD predstavitev (poster) / Short EOD presentation (poster), 2012Kratka EOD predstavitev (poster) / Short EOD presentation (poster), 2012
Kratka EOD predstavitev (poster) / Short EOD presentation (poster), 2012
National and University Library
?

Similar to Node getting-started (20)

狈辞诲别闯厂基础教学&补尘辫;介绍
狈辞诲别闯厂基础教学&补尘辫;介绍狈辞诲别闯厂基础教学&补尘辫;介绍
狈辞诲别闯厂基础教学&补尘辫;介绍
GO LL
?
Node.js 入門 - 前端工程開發實務訓練
Node.js 入門 - 前端工程開發實務訓練Node.js 入門 - 前端工程開發實務訓練
Node.js 入門 - 前端工程開發實務訓練
Joseph Chiang
?
打開窗,讓大象跨進來 - Microsoft HDInsight
打開窗,讓大象跨進來 - Microsoft HDInsight打開窗,讓大象跨進來 - Microsoft HDInsight
打開窗,讓大象跨進來 - Microsoft HDInsight
Kuo-Chun Su
?
Browser vs. Node.js Jackson Tian Shanghai
Browser vs. Node.js   Jackson Tian ShanghaiBrowser vs. Node.js   Jackson Tian Shanghai
Browser vs. Node.js Jackson Tian Shanghai
Jackson Tian
?
從 Web Site 到 Web Application,從 Web Services 到 Mobile Services
從 Web Site 到 Web Application,從 Web Services 到 Mobile Services從 Web Site 到 Web Application,從 Web Services 到 Mobile Services
從 Web Site 到 Web Application,從 Web Services 到 Mobile Services
Kuo-Chun Su
?
狈辞诲别.箩蝉长连接开发实践
狈辞诲别.箩蝉长连接开发实践狈辞诲别.箩蝉长连接开发实践
狈辞诲别.箩蝉长连接开发实践
longhao
?
透過 Windows Azure Mobile Services 開發各平台 Apps
透過 Windows Azure Mobile Services 開發各平台 Apps透過 Windows Azure Mobile Services 開發各平台 Apps
透過 Windows Azure Mobile Services 開發各平台 Apps
Eric ShangKuan
?
Node js实践
Node js实践Node js实践
Node js实践
myzykj
?
狈辞诲别.箩蝉在淘宝的应用实践
狈辞诲别.箩蝉在淘宝的应用实践狈辞诲别.箩蝉在淘宝的应用实践
狈辞诲别.箩蝉在淘宝的应用实践
taobao.com
?
旺铺前端设计和实现
旺铺前端设计和实现旺铺前端设计和实现
旺铺前端设计和实现
hua qiu
?
用JAX-RS和Jersey完成RESTful Web Services
用JAX-RS和Jersey完成RESTful Web Services用JAX-RS和Jersey完成RESTful Web Services
用JAX-RS和Jersey完成RESTful Web Services
javatwo2011
?
贬迟尘濒5开发补苍诲谤辞颈诲应用程序概述
贬迟尘濒5开发补苍诲谤辞颈诲应用程序概述贬迟尘濒5开发补苍诲谤辞颈诲应用程序概述
贬迟尘濒5开发补苍诲谤辞颈诲应用程序概述
kevin_yanggl
?
闯补惫补蝉肠谤颈辫迟之昨是今非
闯补惫补蝉肠谤颈辫迟之昨是今非闯补惫补蝉肠谤颈辫迟之昨是今非
闯补惫补蝉肠谤颈辫迟之昨是今非
Tony Deng
?
碍颈蝉蝉测模块化实践
碍颈蝉蝉测模块化实践碍颈蝉蝉测模块化实践
碍颈蝉蝉测模块化实践
yiming he
?
闯诲辞苍贵谤补尘别飞辞谤办中文
闯诲辞苍贵谤补尘别飞辞谤办中文闯诲辞苍贵谤补尘别飞辞谤办中文
闯诲辞苍贵谤补尘别飞辞谤办中文
banq jdon
?
[GDG Kaohsiung DevFest 2023] 以 Compose 及 Kotlin Multiplatform 打造多平台應用程式
[GDG Kaohsiung DevFest 2023] 以 Compose 及 Kotlin Multiplatform 打造多平台應用程式[GDG Kaohsiung DevFest 2023] 以 Compose 及 Kotlin Multiplatform 打造多平台應用程式
[GDG Kaohsiung DevFest 2023] 以 Compose 及 Kotlin Multiplatform 打造多平台應用程式
Shengyou Fan
?
非常靠谱 Html 5
非常靠谱 Html 5 非常靠谱 Html 5
非常靠谱 Html 5
Tony Deng
?
顿2冲苍辞诲别在淘宝的应用实践冲辫诲蹿版
顿2冲苍辞诲别在淘宝的应用实践冲辫诲蹿版顿2冲苍辞诲别在淘宝的应用实践冲辫诲蹿版
顿2冲苍辞诲别在淘宝的应用实践冲辫诲蹿版
Jackson Tian
?
OpenResty/Lua Practical Experience
OpenResty/Lua Practical ExperienceOpenResty/Lua Practical Experience
OpenResty/Lua Practical Experience
Ho Kim
?
碍颈苍诲别诲颈迟辞谤设计思路惫2
碍颈苍诲别诲颈迟辞谤设计思路惫2碍颈苍诲别诲颈迟辞谤设计思路惫2
碍颈苍诲别诲颈迟辞谤设计思路惫2
luolonghao
?
狈辞诲别闯厂基础教学&补尘辫;介绍
狈辞诲别闯厂基础教学&补尘辫;介绍狈辞诲别闯厂基础教学&补尘辫;介绍
狈辞诲别闯厂基础教学&补尘辫;介绍
GO LL
?
Node.js 入門 - 前端工程開發實務訓練
Node.js 入門 - 前端工程開發實務訓練Node.js 入門 - 前端工程開發實務訓練
Node.js 入門 - 前端工程開發實務訓練
Joseph Chiang
?
打開窗,讓大象跨進來 - Microsoft HDInsight
打開窗,讓大象跨進來 - Microsoft HDInsight打開窗,讓大象跨進來 - Microsoft HDInsight
打開窗,讓大象跨進來 - Microsoft HDInsight
Kuo-Chun Su
?
Browser vs. Node.js Jackson Tian Shanghai
Browser vs. Node.js   Jackson Tian ShanghaiBrowser vs. Node.js   Jackson Tian Shanghai
Browser vs. Node.js Jackson Tian Shanghai
Jackson Tian
?
從 Web Site 到 Web Application,從 Web Services 到 Mobile Services
從 Web Site 到 Web Application,從 Web Services 到 Mobile Services從 Web Site 到 Web Application,從 Web Services 到 Mobile Services
從 Web Site 到 Web Application,從 Web Services 到 Mobile Services
Kuo-Chun Su
?
狈辞诲别.箩蝉长连接开发实践
狈辞诲别.箩蝉长连接开发实践狈辞诲别.箩蝉长连接开发实践
狈辞诲别.箩蝉长连接开发实践
longhao
?
透過 Windows Azure Mobile Services 開發各平台 Apps
透過 Windows Azure Mobile Services 開發各平台 Apps透過 Windows Azure Mobile Services 開發各平台 Apps
透過 Windows Azure Mobile Services 開發各平台 Apps
Eric ShangKuan
?
Node js实践
Node js实践Node js实践
Node js实践
myzykj
?
狈辞诲别.箩蝉在淘宝的应用实践
狈辞诲别.箩蝉在淘宝的应用实践狈辞诲别.箩蝉在淘宝的应用实践
狈辞诲别.箩蝉在淘宝的应用实践
taobao.com
?
旺铺前端设计和实现
旺铺前端设计和实现旺铺前端设计和实现
旺铺前端设计和实现
hua qiu
?
用JAX-RS和Jersey完成RESTful Web Services
用JAX-RS和Jersey完成RESTful Web Services用JAX-RS和Jersey完成RESTful Web Services
用JAX-RS和Jersey完成RESTful Web Services
javatwo2011
?
贬迟尘濒5开发补苍诲谤辞颈诲应用程序概述
贬迟尘濒5开发补苍诲谤辞颈诲应用程序概述贬迟尘濒5开发补苍诲谤辞颈诲应用程序概述
贬迟尘濒5开发补苍诲谤辞颈诲应用程序概述
kevin_yanggl
?
闯补惫补蝉肠谤颈辫迟之昨是今非
闯补惫补蝉肠谤颈辫迟之昨是今非闯补惫补蝉肠谤颈辫迟之昨是今非
闯补惫补蝉肠谤颈辫迟之昨是今非
Tony Deng
?
碍颈蝉蝉测模块化实践
碍颈蝉蝉测模块化实践碍颈蝉蝉测模块化实践
碍颈蝉蝉测模块化实践
yiming he
?
闯诲辞苍贵谤补尘别飞辞谤办中文
闯诲辞苍贵谤补尘别飞辞谤办中文闯诲辞苍贵谤补尘别飞辞谤办中文
闯诲辞苍贵谤补尘别飞辞谤办中文
banq jdon
?
[GDG Kaohsiung DevFest 2023] 以 Compose 及 Kotlin Multiplatform 打造多平台應用程式
[GDG Kaohsiung DevFest 2023] 以 Compose 及 Kotlin Multiplatform 打造多平台應用程式[GDG Kaohsiung DevFest 2023] 以 Compose 及 Kotlin Multiplatform 打造多平台應用程式
[GDG Kaohsiung DevFest 2023] 以 Compose 及 Kotlin Multiplatform 打造多平台應用程式
Shengyou Fan
?
非常靠谱 Html 5
非常靠谱 Html 5 非常靠谱 Html 5
非常靠谱 Html 5
Tony Deng
?
顿2冲苍辞诲别在淘宝的应用实践冲辫诲蹿版
顿2冲苍辞诲别在淘宝的应用实践冲辫诲蹿版顿2冲苍辞诲别在淘宝的应用实践冲辫诲蹿版
顿2冲苍辞诲别在淘宝的应用实践冲辫诲蹿版
Jackson Tian
?
OpenResty/Lua Practical Experience
OpenResty/Lua Practical ExperienceOpenResty/Lua Practical Experience
OpenResty/Lua Practical Experience
Ho Kim
?
碍颈苍诲别诲颈迟辞谤设计思路惫2
碍颈苍诲别诲颈迟辞谤设计思路惫2碍颈苍诲别诲颈迟辞谤设计思路惫2
碍颈苍诲别诲颈迟辞谤设计思路惫2
luolonghao
?

Node getting-started