diff --git a/lesson0/README.md b/lesson0/README.md index 03c2f19..d1bfada 100644 --- a/lesson0/README.md +++ b/lesson0/README.md @@ -104,3 +104,5 @@ export NVM_DIR="/Users/YOURUSERNAME/.nvm" `$ nvm ls` 看一下 + +[下一课](../../../tree/master/lesson1) 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) 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) 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) 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) 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) 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) 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) 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) diff --git a/lesson17/README.md b/lesson17/README.md index 7e52531..70b36c6 100644 --- a/lesson17/README.md +++ b/lesson17/README.md @@ -690,3 +690,4 @@ getPromise('1',3000) +[上一课](../../../tree/master/lesson16) 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) 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) 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) 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) 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) 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) 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) 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)