From 0fc992e320a4a079cc1b4d1939bcf26fa613a33d Mon Sep 17 00:00:00 2001 From: Changyu Geng Date: Thu, 4 Jun 2015 11:21:28 +0800 Subject: [PATCH 01/20] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=B8=8B=E4=B8=80?= =?UTF-8?q?=E8=AF=BE=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lesson0/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/lesson0/README.md b/lesson0/README.md index 03c2f19..848f963 100644 --- a/lesson0/README.md +++ b/lesson0/README.md @@ -104,3 +104,4 @@ export NVM_DIR="/Users/YOURUSERNAME/.nvm" `$ nvm ls` 看一下 +[下一课](../../../tree/master/lesson1) From aff3aea0ebc0c2d0f18c2fb0a864bd0aa9398a87 Mon Sep 17 00:00:00 2001 From: Changyu Geng Date: Thu, 4 Jun 2015 11:23:07 +0800 Subject: [PATCH 02/20] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=B8=8A=E4=B8=80?= =?UTF-8?q?=E8=AF=BE=E3=80=81=E4=B8=8B=E4=B8=80=E8=AF=BE=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lesson1/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lesson1/README.md b/lesson1/README.md index 72c88c5..c87baa8 100644 --- a/lesson1/README.md +++ b/lesson1/README.md @@ -125,4 +125,4 @@ scheme有我们很熟悉的`http`、`https`、`ftp`,以及著名的`ed2k`,`t - +[上一课](../../../tree/master/lesson0) [下一课](../../../tree/master/lesson2) From e1f9b466033a4f1d80ef7c1781f7631ba78ea7e0 Mon Sep 17 00:00:00 2001 From: Changyu Geng Date: Thu, 4 Jun 2015 11:23:53 +0800 Subject: [PATCH 03/20] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=B8=8A=E4=B8=80?= =?UTF-8?q?=E8=AF=BE=E3=80=81=E4=B8=8B=E4=B8=80=E8=AF=BE=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lesson2/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/lesson2/README.md b/lesson2/README.md index 5657a07..7c9adb2 100644 --- a/lesson2/README.md +++ b/lesson2/README.md @@ -97,3 +97,4 @@ OK,运行我们的程序 这是因为,当我们不传入 `q` 参数时,`req.query.q` 取到的值是 `undefined`,`utility.md5` 直接使用了这个空值,导致下层的 `crypto` 抛错。 +[上一课](../../../tree/master/lesson1)[下一课](../../../tree/master/lesson3) From 01645e09d82ae9cb9ccf9211b4dfd4f3f9a81b41 Mon Sep 17 00:00:00 2001 From: Changyu Geng Date: Thu, 4 Jun 2015 11:24:38 +0800 Subject: [PATCH 04/20] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=B8=8A=E4=B8=80?= =?UTF-8?q?=E8=AF=BE=E3=80=81=E4=B8=8B=E4=B8=80=E8=AF=BE=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lesson3/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lesson3/README.md b/lesson3/README.md index 54ed1c8..52c92e7 100644 --- a/lesson3/README.md +++ b/lesson3/README.md @@ -100,3 +100,5 @@ app.get('/', function (req, res, next) { OK,一个简单的爬虫就是这么简单。这里我们还没有利用到 Node.js 的异步并发特性。不过下两章内容都是关于异步控制的。 记得好好看看 superagent 的 API,它把链式调用的风格玩到了极致。 + +[上一课](../../../tree/master/lesson2)[下一课](../../../tree/master/lesson4) From 892e109c0d5ce19b7e4d70016be12f64decd129d Mon Sep 17 00:00:00 2001 From: Changyu Geng Date: Thu, 4 Jun 2015 11:25:11 +0800 Subject: [PATCH 05/20] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=B8=8A=E4=B8=80?= =?UTF-8?q?=E8=AF=BE=E3=80=81=E4=B8=8B=E4=B8=80=E8=AF=BE=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lesson4/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/lesson4/README.md b/lesson4/README.md index 2429aa6..bf2dfbc 100644 --- a/lesson4/README.md +++ b/lesson4/README.md @@ -262,3 +262,4 @@ topicUrls.forEach(function (topicUrl) { +[上一课](../../../tree/master/lesson3)[下一课](../../../tree/master/lesson5) From df82f18d2149198696ee787163c09afb98775ed8 Mon Sep 17 00:00:00 2001 From: Changyu Geng Date: Thu, 4 Jun 2015 11:25:54 +0800 Subject: [PATCH 06/20] Update README.md --- lesson5/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/lesson5/README.md b/lesson5/README.md index 5d41309..6117e61 100644 --- a/lesson5/README.md +++ b/lesson5/README.md @@ -112,3 +112,4 @@ async.mapLimit(urls, 5, function (url, callback) { +[上一课](../../../tree/master/lesson4)[下一课](../../../tree/master/lesson6) From 90d593135ffa71a01138be723b6b8ff6f2d00467 Mon Sep 17 00:00:00 2001 From: Changyu Geng Date: Thu, 4 Jun 2015 11:26:42 +0800 Subject: [PATCH 07/20] Update README.md --- lesson0/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/lesson0/README.md b/lesson0/README.md index 848f963..d1bfada 100644 --- a/lesson0/README.md +++ b/lesson0/README.md @@ -104,4 +104,5 @@ export NVM_DIR="/Users/YOURUSERNAME/.nvm" `$ nvm ls` 看一下 + [下一课](../../../tree/master/lesson1) From 423ed15cc75c572b902e0cdc37ff1eeb4197e904 Mon Sep 17 00:00:00 2001 From: Changyu Geng Date: Thu, 4 Jun 2015 11:27:54 +0800 Subject: [PATCH 08/20] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=B8=8A=E4=B8=80?= =?UTF-8?q?=E8=AF=BE=E3=80=81=E4=B8=8B=E4=B8=80=E8=AF=BE=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lesson6/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lesson6/README.md b/lesson6/README.md index 782c19d..712d645 100644 --- a/lesson6/README.md +++ b/lesson6/README.md @@ -237,3 +237,5 @@ cov test-cov: 这时,我们只需要调用 `make test` 或者 `make cov`,就可以跑我们相应的测试了。 至于 Makefile 怎么写?以及 .PHONY 是什么意思,请看这里:http://blog.csdn.net/haoel/article/details/2886 ,左耳朵耗子陈皓2004年的文章。 + +[上一课](../../../tree/master/lesson5)[下一课](../../../tree/master/lesson7) From 596f128cffc06590e838b0aa3cdc2d005a056cd3 Mon Sep 17 00:00:00 2001 From: Changyu Geng Date: Thu, 4 Jun 2015 11:28:35 +0800 Subject: [PATCH 09/20] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=B8=8A=E4=B8=80?= =?UTF-8?q?=E8=AF=BE=E3=80=81=E4=B8=8B=E4=B8=80=E8=AF=BE=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lesson7/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lesson7/README.md b/lesson7/README.md index 66dff37..9f1eb89 100644 --- a/lesson7/README.md +++ b/lesson7/README.md @@ -132,3 +132,5 @@ npm test ``` 至此,我们实现了前端脚本的单元测试,基于 phanatomjs 你几乎可以调用所有的浏览器方法,而 mocha-phanatomjs 也可以很便捷地将测试结果反馈到 mocha,便于后续的持续集成。 + +[上一课](../../../tree/master/lesson6)[下一课](../../../tree/master/lesson8) From 2f4dfad644ab0a7612a07702145a6733c15628b8 Mon Sep 17 00:00:00 2001 From: Changyu Geng Date: Thu, 4 Jun 2015 11:29:15 +0800 Subject: [PATCH 10/20] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=B8=8A=E4=B8=80?= =?UTF-8?q?=E8=AF=BE=E3=80=81=E4=B8=8B=E4=B8=80=E8=AF=BE=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lesson8/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/lesson8/README.md b/lesson8/README.md index b2d8ffd..54d8608 100644 --- a/lesson8/README.md +++ b/lesson8/README.md @@ -257,3 +257,4 @@ Nodeclub 里面的测试使用的技术跟前面介绍的是一样的,should m https://github.com/cnodejs/nodeclub/blob/master/test/controllers/topic.test.js +[上一课](../../../tree/master/lesson7)[下一课](../../../tree/master/lesson9) From 88967aca831f82c7121dad56b09c864753493634 Mon Sep 17 00:00:00 2001 From: Changyu Geng Date: Thu, 4 Jun 2015 11:32:15 +0800 Subject: [PATCH 11/20] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=B8=8A=E4=B8=80?= =?UTF-8?q?=E8=AF=BE=E3=80=81=E4=B8=8B=E4=B8=80=E8=AF=BE=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lesson9/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/lesson9/README.md b/lesson9/README.md index 05faea0..5ed2858 100644 --- a/lesson9/README.md +++ b/lesson9/README.md @@ -156,3 +156,4 @@ console.log(match2) // => [ '```\ncode code2 .code3```\n```' ] 完。 +[上一课](../../../tree/master/lesson8)[下一课](../../../tree/master/lesson10) From 47961afd398a6d27a9d8bcb59beb3fc1330d972c Mon Sep 17 00:00:00 2001 From: Changyu Geng Date: Thu, 4 Jun 2015 11:32:51 +0800 Subject: [PATCH 12/20] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=B8=8A=E4=B8=80?= =?UTF-8?q?=E8=AF=BE=E3=80=81=E4=B8=8B=E4=B8=80=E8=AF=BE=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lesson10/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lesson10/README.md b/lesson10/README.md index 7d788f8..26f3bd3 100644 --- a/lesson10/README.md +++ b/lesson10/README.md @@ -81,3 +81,5 @@ http://jsperf.com/math-perf-alsotang 进入之后点击那个 `Run tests` 按钮,就可以在浏览器中看到它们的效率差异了,毕竟浏览器也是可以跑 js 的。 点击这里:http://jsperf.com/math-perf-alsotang/edit ,就可以看到这个 benchmark 是怎么配置的,很简单。 + +[上一课](../../../tree/master/lesson9)[下一课](../../../tree/master/lesson11) From d7626b1b76c906557a55e04011b1605513b7c560 Mon Sep 17 00:00:00 2001 From: Changyu Geng Date: Thu, 4 Jun 2015 11:33:25 +0800 Subject: [PATCH 13/20] Update README.md --- lesson11/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lesson11/README.md b/lesson11/README.md index 9375a9f..1acd99d 100644 --- a/lesson11/README.md +++ b/lesson11/README.md @@ -226,3 +226,5 @@ newFoo(); // { value: 100 } ``` 完。 + +[上一课](../../../tree/master/lesson10)[下一课](../../../tree/master/lesson12) From 5c1f03aef004cadf5b1ea6fd4e2e73719987940e Mon Sep 17 00:00:00 2001 From: Changyu Geng Date: Thu, 4 Jun 2015 11:34:43 +0800 Subject: [PATCH 14/20] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=B8=8A=E4=B8=80?= =?UTF-8?q?=E8=AF=BE=E3=80=81=E4=B8=8B=E4=B8=80=E8=AF=BE=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lesson12/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lesson12/README.md b/lesson12/README.md index 18bdd0b..33580dd 100644 --- a/lesson12/README.md +++ b/lesson12/README.md @@ -87,3 +87,5 @@ push 完成后,在命令键入 `heroku open`,则 heroku 会自动打开浏 国内的话,其实在阿里云上面也可以考虑这么搞一搞。 完。 + +[上一课](../../../tree/master/lesson11)[下一课](../../../tree/master/lesson13) From ac1aded12b11fff6dcc09dd165a3a1a2d943edcf Mon Sep 17 00:00:00 2001 From: Changyu Geng Date: Thu, 4 Jun 2015 11:36:07 +0800 Subject: [PATCH 15/20] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=B8=8A=E4=B8=80?= =?UTF-8?q?=E8=AF=BE=E3=80=81=E4=B8=8B=E4=B8=80=E8=AF=BE=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lesson13/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lesson13/README.md b/lesson13/README.md index 6075bab..d2c1e23 100644 --- a/lesson13/README.md +++ b/lesson13/README.md @@ -82,3 +82,5 @@ services: ``` 其它数据库详细内容参考[travis 官方文档](http://docs.travis-ci.com/user/database-setup/) + +[上一课](../../../tree/master/lesson12)[下一课](../../../tree/master/lesson14) From dd0e72fef77397f9ab2b36a3cf91c70cabe03575 Mon Sep 17 00:00:00 2001 From: Changyu Geng Date: Thu, 4 Jun 2015 11:36:43 +0800 Subject: [PATCH 16/20] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=B8=8A=E4=B8=80?= =?UTF-8?q?=E8=AF=BE=E3=80=81=E4=B8=8B=E4=B8=80=E8=AF=BE=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lesson14/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lesson14/README.md b/lesson14/README.md index 50f7243..8239069 100644 --- a/lesson14/README.md +++ b/lesson14/README.md @@ -143,3 +143,5 @@ https://github.com/alsotang/node-lessons/blob/master/lesson14/%E8%A7%A3%E5%AF%86 ### 构建大型项目 从 npm 上面寻找质量高的库,并用质量高的方式拼凑起来。 + +[上一课](../../../tree/master/lesson13)[下一课](../../../tree/master/lesson15) From 81f96ef6f9399639fead35515e8e187b52862b1a Mon Sep 17 00:00:00 2001 From: Changyu Geng Date: Thu, 4 Jun 2015 11:38:00 +0800 Subject: [PATCH 17/20] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=B8=8A=E4=B8=80?= =?UTF-8?q?=E8=AF=BE=E3=80=81=E4=B8=8B=E4=B8=80=E8=AF=BE=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lesson15/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lesson15/README.md b/lesson15/README.md index 40b7fab..ec8cae3 100644 --- a/lesson15/README.md +++ b/lesson15/README.md @@ -170,3 +170,5 @@ Nodeclub 是使用 Node.js 和 MongoDB 开发的社区系统 https://github.com/cnodejs/nodeclub 完。 + +[上一课](../../../tree/master/lesson14)[下一课](../../../tree/master/lesson16) From f4598b90bebf2b6c20d133433d6d9da8779d8e48 Mon Sep 17 00:00:00 2001 From: Changyu Geng Date: Thu, 4 Jun 2015 11:38:43 +0800 Subject: [PATCH 18/20] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=B8=8A=E4=B8=80?= =?UTF-8?q?=E8=AF=BE=E3=80=81=E4=B8=8B=E4=B8=80=E8=AF=BE=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lesson16/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lesson16/README.md b/lesson16/README.md index b055ffb..fae328a 100644 --- a/lesson16/README.md +++ b/lesson16/README.md @@ -267,3 +267,5 @@ if (req.session.user) { ### etag 当做 session,保存 http 会话 很黑客的一种玩法:https://cnodejs.org/topic/5212d82d0a746c580b43d948 + +[上一课](../../../tree/master/lesson15)[下一课](../../../tree/master/lesson17) From 4f77d09f02633cb89379ef3a30506545f34de20c Mon Sep 17 00:00:00 2001 From: Changyu Geng Date: Thu, 4 Jun 2015 11:39:28 +0800 Subject: [PATCH 19/20] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=B8=8A=E4=B8=80?= =?UTF-8?q?=E8=AF=BE=E3=80=81=E4=B8=8B=E4=B8=80=E8=AF=BE=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lesson17/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/lesson17/README.md b/lesson17/README.md index 7e52531..a54c293 100644 --- a/lesson17/README.md +++ b/lesson17/README.md @@ -690,3 +690,4 @@ getPromise('1',3000) +[上一课](../../../tree/master/lesson16)[下一课](../../../tree/master/lesson18) From e3043060aeec76a0069347205549ccb3ea4f92a5 Mon Sep 17 00:00:00 2001 From: Changyu Geng Date: Thu, 4 Jun 2015 11:42:53 +0800 Subject: [PATCH 20/20] =?UTF-8?q?=E5=88=A0=E9=99=A4=E4=B8=8B=E4=B8=80?= =?UTF-8?q?=E8=AF=BE=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lesson17/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lesson17/README.md b/lesson17/README.md index a54c293..70b36c6 100644 --- a/lesson17/README.md +++ b/lesson17/README.md @@ -690,4 +690,4 @@ getPromise('1',3000) -[上一课](../../../tree/master/lesson16)[下一课](../../../tree/master/lesson18) +[上一课](../../../tree/master/lesson16)