Skip to content

Commit 66f1d47

Browse files
committed
refact with kezhi
1 parent 1b64522 commit 66f1d47

2 files changed

Lines changed: 94 additions & 48 deletions

File tree

doc/day1_express.md

Lines changed: 50 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,8 @@ http.createServer(app).listen(3000)
8888

8989
新建文件夹:
9090

91-
$mkdir /getting start/app
91+
$ mkdir /getting start/app
92+
$ npm init
9293

9394
![Mou icon](./images/expressimg7.jpg)
9495

@@ -128,11 +129,7 @@ generator是express命令工具集,首先确保已经安装node和npm,先在
128129

129130
$sudo npm install -g express-generator
130131

131-
现在新建一个文件夹装我们的express应用:
132-
133-
$mkdir expressApp
134-
135-
然后执行:
132+
现在新建一个我们的express应用,执行:
136133

137134
$express expressApp
138135

@@ -189,7 +186,7 @@ Request对象是有关于客户端所发出的请求的对象,只要是有关
189186
- header
190187
- params
191188
- query
192-
....
189+
- ....
193190

194191
### 响应response
195192

@@ -204,6 +201,22 @@ Response对象是有关于对客户端请求之响应,可以利用它来设定
204201
- 地址1:谁来处理,以什么方式处理
205202
- 地址2:谁来处理,以什么方式处理
206203

204+
```
205+
var express = require('express');
206+
var app = express();
207+
208+
app.get('/',function(req,res){
209+
res.send('hello,world');
210+
});
211+
212+
app.post('/someur',function(req,res){
213+
res.send('hello,world');
214+
});
215+
216+
app.listen(5000);
217+
```
218+
219+
说明一下
207220

208221
### session
209222

@@ -239,7 +252,7 @@ https://github.com/expressjs/session
239252

240253
- 保证当前session里有用户信息,用户是登陆状态的
241254
- 用户在购物页面操作,点击加入购物车,此时在session里增加一条信息,存储当前物品信息
242-
- 用户结算的时候,从session获取物品架构和数量,计算出总价,订单完成后,清理session
255+
- 用户结算的时候,从session获取物品价格和数量,计算出总价,订单完成后,清理session
243256

244257
### 理解模板jade
245258
- http://jade-lang.com/
@@ -252,43 +265,57 @@ https://github.com/expressjs/session
252265

253266
- 常规做法
254267

268+
app.js里
269+
255270
app.use(express.static(path.join(__dirname, 'public')));
256271

257-
来托管pubblic中得所有文件。
272+
它就是用来托管public中得所有文件。可以以http方式访问
258273

274+
说明
259275

260-
- 如何在静态页面处理请求参数
276+
####如果public/index.html不存在
261277

262-
在静态页面处理请求参数,是通过连接地址把参数传递过去,通过前端jacascript取出做处理。
278+
此时如何使用其他页面做为入口,需要再`/`路由定义处,redirect到对应页面(by kezhi)。
279+
280+
#### 如何在静态页面处理请求参数
281+
282+
在静态页面处理请求参数,是通过连接地址把参数传递过去,通过前端jacascript取出做处理(by kezhi)。
263283

264284

265285
#### 理解express.static
266286

267-
区分express.static和http-server的差别
287+
说明http-server用法
288+
289+
区分express.static和http-server的差别:功能一样,用法上有差异
268290

269291
http-server只做静态托管文件,输出请求文件,无法拦截到请求参数;
270292
express.static不仅可以托管静态文件,并且提供接口可以拦截到前端页面的请求参数,并且可以控制返回数据;(这句是错的)
271293

272294
#### 路由冲突
273295

274-
当public/index.html和路由的`/`冲突
296+
`public/index.html`和路由的`/`冲突
275297

276-
此时按照public/index.html走
298+
此时按照`public/index.html`
277299

278300

279301
## 任务
280302

281303
此处开始是大家每个人都必须亲手做的练习
282304

283-
- 路由定制方式
284-
- 如何处理get请求
285-
- 如何处理post请求
286-
- 如何实现文件上传
287-
- request里如何取值
288-
- response返回
289-
- 完成api返回
290-
- 完成登陆
291-
- 完成购物车
305+
1. 准备工作
306+
1. 路由定制方式
307+
1. 如何处理get请求
308+
1. 如何处理post请求
309+
1. 如何实现文件上传
310+
1. request里如何取值
311+
1. response返回
312+
1. 完成api返回
313+
1. 完成登陆
314+
1. 完成购物车
315+
316+
### 准备工作
317+
318+
安装supervisor
292319

293320

294321
### 路由定制方式

doc/preview/day1_express.html

Lines changed: 44 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -160,11 +160,11 @@ <h2>无状态的http协议</h2>
160160

161161
<p>TODO: 此处该补出一张express在node中得位置图片</p>
162162

163-
<h2>node 基础</h2>
163+
<h2>Node 基础</h2>
164164

165165
<p>see <a href="https://github.com/nodeonly/nodejs-tutorial/blob/master/doc/day3_node.md">node 基础</a></p>
166166

167-
<h2>node 版本的http server</h2>
167+
<h2>Node 版本的http server</h2>
168168
<div class="highlight"><pre><span class="vg">var</span><span class="w"> </span><span class="vg">http</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="vg">require</span><span class="p">(</span><span class="c1">&#39;http&#39;);</span>
169169

170170
<span class="vg">http</span><span class="o">.</span><span class="vg">createServer</span><span class="p">(</span><span class="vg">function</span><span class="p">(</span><span class="vg">request</span><span class="p">,</span><span class="vg">response</span><span class="p">){</span>
@@ -174,7 +174,7 @@ <h2>node 版本的http server</h2>
174174
</pre></div>
175175
<p>这就是最简单的实现</p>
176176

177-
<h2>node connect 版本的http server</h2>
177+
<h2>Node connect 版本的http server</h2>
178178

179179
<p>Connect is an extensible HTTP server framework for node using &quot;plugins&quot; known as middleware.</p>
180180
<div class="highlight"><pre><span class="vg">var</span><span class="w"> </span><span class="vg">connect</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="vg">require</span><span class="p">(</span><span class="c1">&#39;connect&#39;)</span>
@@ -216,7 +216,8 @@ <h2>安装Express</h2>
216216
<h3>如何手动安装</h3>
217217

218218
<p>新建文件夹:</p>
219-
<div class="highlight"><pre><span class="err">$</span><span class="vg">mkdir</span><span class="w"> </span><span class="o">/</span><span class="vg">getting</span><span class="w"> </span><span class="vg">start</span><span class="o">/</span><span class="vg">app</span>
219+
<div class="highlight"><pre><span class="nv">$ </span>mkdir /getting start/app
220+
<span class="nv">$ </span>npm init
220221
</pre></div>
221222
<p><img src="./images/expressimg7.jpg" alt="Mou icon"></p>
222223

@@ -250,10 +251,7 @@ <h4>安装</h4>
250251
<p>如果安装失败,尝试加sudo权限:</p>
251252
<div class="highlight"><pre><span class="err">$</span><span class="vg">sudo</span><span class="w"> </span><span class="vg">npm</span><span class="w"> </span><span class="vg">install</span><span class="w"> </span><span class="o">-</span><span class="vg">g</span><span class="w"> </span><span class="vg">express</span><span class="o">-</span><span class="vg">generator</span>
252253
</pre></div>
253-
<p>现在新建一个文件夹装我们的express应用:</p>
254-
<div class="highlight"><pre><span class="err">$</span><span class="vg">mkdir</span><span class="w"> </span><span class="vg">expressApp</span>
255-
</pre></div>
256-
<p>然后执行:</p>
254+
<p>现在新建一个我们的express应用,执行:</p>
257255
<div class="highlight"><pre><span class="err">$</span><span class="vg">express</span><span class="w"> </span><span class="vg">expressApp</span>
258256
</pre></div>
259257
<p>项目创建完毕,文件结构如下:</p>
@@ -304,8 +302,8 @@ <h3>请求request</h3>
304302
<li>body</li>
305303
<li>header</li>
306304
<li>params</li>
307-
<li>query
308-
....</li>
305+
<li>query</li>
306+
<li>....</li>
309307
</ul>
310308

311309
<h3>响应response</h3>
@@ -322,6 +320,20 @@ <h3>理解路由</h3>
322320
<li>地址1:谁来处理,以什么方式处理</li>
323321
<li>地址2:谁来处理,以什么方式处理</li>
324322
</ul>
323+
<div class="highlight"><pre><span class="w"> </span><span class="vg">var</span><span class="w"> </span><span class="vg">express</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="vg">require</span><span class="p">(</span><span class="c1">&#39;express&#39;);</span>
324+
<span class="w"> </span><span class="vg">var</span><span class="w"> </span><span class="vg">app</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="vg">express</span><span class="p">();</span>
325+
326+
<span class="w"> </span><span class="vg">app</span><span class="o">.</span><span class="vg">get</span><span class="p">(</span><span class="c1">&#39;/&#39;,function(req,res){</span>
327+
<span class="w"> </span><span class="vg">res</span><span class="o">.</span><span class="vg">send</span><span class="p">(</span><span class="c1">&#39;hello,world&#39;);</span>
328+
<span class="w"> </span><span class="p">});</span>
329+
330+
<span class="w"> </span><span class="vg">app</span><span class="o">.</span><span class="vg">post</span><span class="p">(</span><span class="c1">&#39;/someur&#39;,function(req,res){</span>
331+
<span class="w"> </span><span class="vg">res</span><span class="o">.</span><span class="vg">send</span><span class="p">(</span><span class="c1">&#39;hello,world&#39;);</span>
332+
<span class="w"> </span><span class="p">});</span>
333+
334+
<span class="w"> </span><span class="vg">app</span><span class="o">.</span><span class="vg">listen</span><span class="p">(</span><span class="il">5000</span><span class="p">);</span>
335+
</pre></div>
336+
<p>说明一下</p>
325337

326338
<h3>session</h3>
327339

@@ -361,7 +373,7 @@ <h4>应用场景: 购物车</h4>
361373
<ul>
362374
<li>保证当前session里有用户信息,用户是登陆状态的</li>
363375
<li>用户在购物页面操作,点击加入购物车,此时在session里增加一条信息,存储当前物品信息</li>
364-
<li>用户结算的时候,从session获取物品架构和数量,计算出总价,订单完成后,清理session</li>
376+
<li>用户结算的时候,从session获取物品价格和数量,计算出总价,订单完成后,清理session</li>
365377
</ul>
366378

367379
<h3>理解模板jade</h3>
@@ -377,37 +389,44 @@ <h3>理解模板jade</h3>
377389
<h3>理解public目录</h3>
378390

379391
<ul>
380-
<li><p>常规做法</p>
381-
382-
<p>app.use(express.static(path.join(__dirname, &#39;public&#39;)));</p></li>
392+
<li>常规做法</li>
383393
</ul>
384394

385-
<p>来托管pubblic中得所有文件。</p>
395+
<p>app.js里</p>
396+
<div class="highlight"><pre><span class="vg">app</span><span class="o">.</span><span class="vg">use</span><span class="p">(</span><span class="vg">express</span><span class="o">.</span><span class="vg">static</span><span class="p">(</span><span class="vg">path</span><span class="o">.</span><span class="vg">join</span><span class="p">(</span><span class="vg">__dirname</span><span class="p">,</span><span class="w"> </span><span class="c1">&#39;public&#39;)));</span>
397+
</pre></div>
398+
<p>它就是用来托管public中得所有文件。可以以http方式访问</p>
386399

387-
<ul>
388-
<li>如何在静态页面处理请求参数</li>
389-
</ul>
400+
<p>说明</p>
401+
402+
<p>####如果public/index.html不存在</p>
403+
404+
<p>此时如何使用其他页面做为入口,需要再<code>/</code>路由定义处,redirect到对应页面(by kezhi)。</p>
390405

391-
<p>在静态页面处理请求参数,是通过连接地址把参数传递过去,通过前端jacascript取出做处理。</p>
406+
<h4>如何在静态页面处理请求参数</h4>
407+
408+
<p>在静态页面处理请求参数,是通过连接地址把参数传递过去,通过前端jacascript取出做处理(by kezhi)。</p>
392409

393410
<h4>理解express.static</h4>
394411

395-
<p>区分express.static和http-server的差别</p>
412+
<p>说明http-server用法</p>
413+
414+
<p>区分express.static和http-server的差别:功能一样,用法上有差异</p>
396415

397416
<p>http-server只做静态托管文件,输出请求文件,无法拦截到请求参数;
398417
express.static不仅可以托管静态文件,并且提供接口可以拦截到前端页面的请求参数,并且可以控制返回数据;(这句是错的)</p>
399418

400419
<h4>路由冲突</h4>
401420

402-
<p>当public/index.html和路由的<code>/</code>冲突</p>
421+
<p><code>public/index.html</code>和路由的<code>/</code>冲突</p>
403422

404-
<p>此时按照public/index.html走</p>
423+
<p>此时按照<code>public/index.html</code></p>
405424

406425
<h2>任务</h2>
407426

408427
<p>此处开始是大家每个人都必须亲手做的练习</p>
409428

410-
<ul>
429+
<ol>
411430
<li>路由定制方式</li>
412431
<li>如何处理get请求</li>
413432
<li>如何处理post请求</li>
@@ -417,7 +436,7 @@ <h2>任务</h2>
417436
<li>完成api返回</li>
418437
<li>完成登陆</li>
419438
<li>完成购物车</li>
420-
</ul>
439+
</ol>
421440

422441
<h3>路由定制方式</h3>
423442

@@ -428,7 +447,7 @@ <h3>路由定制方式</h3>
428447
<li>使用路由重定向</li>
429448
</ul>
430449

431-
<h4>常规定义路由:</h4>
450+
<h4>常规定义路由</h4>
432451
<div class="highlight"><pre><span class="vg">var</span><span class="w"> </span><span class="vg">express</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="vg">require</span><span class="p">(</span><span class="c1">&#39;express&#39;);</span>
433452
<span class="vg">var</span><span class="w"> </span><span class="vg">app</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="vg">express</span><span class="p">();</span>
434453

0 commit comments

Comments
 (0)