美文网首页程序员让前端飞
如何优雅地学 Node.js

如何优雅地学 Node.js

作者: 强哥科技兴 | 来源:发表于2019-04-18 15:34 被阅读3次

作者:Draveness

学习 Node.js 的路线图我是在知乎找到的 我目前学习 Node.js 的方式就是按照这个得票最高的答主的答案学习的.

现在由于对 Node.js 并不是很熟悉, 所以只来谈一谈这几天学习 Node.js 的感受吧.

Node.js入门

关于 《Node.js 入门》 这本书写的还是非常好的. 不过读这本书之前或者说学习 Node.js 之前还是点亮 Javascript 这个前置技能比较好.

console.log("Hello World");

Node.js权威指南

《Node.js 权威指南》 写的如何我并不能做出评论, 不过书中使用的 Express 框架, 也就是 Node.js 中用于搭建 Web 服务器的框架版本巨低, 很多代码根本无法运行, 所以我不是很推荐, 因为我在这本书的阅读过程(写书中的实例代码)中还是极其痛苦的, 完全无法快乐的玩耍 (/= _ =)/~┴┴, 而无法快乐的写代码与我的信仰是冲突的 ( ̄^ ̄), 我只能放弃了.

varhttp =require('http');

varserver = http.createServer(function(request, response){

response.writeHead(200, {"Content-Type":"text/plain"});

response.end("Hello World\n");

});

server.listen(8888);

console.log("Server running athttp://127.0.0.1:8888/");

顺便给大家推荐一个裙,它的前面是 537,中间是631,最后就是 707。想要学习前端的小伙伴可以加入我们一起学习,互相帮助。群里每天晚上都有大神免费直播上课,如果不是想学习的小伙伴就不要加啦。

Node.js并不是一门语言

对一种技术的尊重, 第一件事是要叫对它的名字, 总有人把 Objective-C 写成 object c 我真是受不了啊…就算不写这么长, 写 OC好么… 对于我这种强迫症患者跟本无法忍受.

同理 Node.js 并不是一门语言, 而是一个平台:

Node.js is a platform built on Chrome’s JavaScript runtime for easily building fast, scalable network applications.

这个从 Node.js 官网 上扒下来的话已经非常清楚地道明了,这货是一个平台, 不是一门语言. 我在这篇 post 中也会重视这一点, 时刻提醒自己与各位.

Express

Express 是基于 Node.js 的 Web 框架, 其实各种脚本语言, Ruby, Python, Node.js(并不是语言) 的 Web 框架使用起来在大体上是差不多的.

Sinatra:

get'/hi'do

"Hello World!"

end

Flask:

@app.route("/")

def hello():

return"Hello World!"

Express:

app.get('/',function(req, res){

res.send('hello world');

});

可以看到这三个框架在使用上或者说形式是相似的. 但是, 它们也有很多的不同.

其实只要你长时间做 Web 开发, “精通”这些框架中的一个, 其它不同”语言”的框架也是很容易掌握的. 关键之处在于理解它们的使用场景和细节上的不同之处.

比如说:

Node.js 比较适合实现高并发 IO 系统, 而不适合高 CPU/内存消耗的计算.

总有人会许寻找适合所有领域的技术, 而这样的技术在目前来看是不存在的, 而什么时候会存在, 只有天知道了. 

顺便给大家推荐一个裙,它的前面是 537,中间是631,最后就是 707。想要学习前端的小伙伴可以加入我们一起学习,互相帮助。群里每天晚上都有大神免费直播上课,如果不是想学习的小伙伴就不要加啦。

事件驱动

接下来讲一下 Node.js 中的一个很重要的概念, 就是事件驱动.

Node.js 是事件驱动的.

编程范式?

第一次听到事件驱动这个概念, 我的第一想法是这是一种编程范式么? 于是我又翻开了 CTMCP, 看了一下这本书的目录, 并没有找到事件驱动这个编程范式.

于是我求助了 Google, 事件驱动程序设计,其实我并没有看懂,不过看到这里, 虽然 CTMCP 中没有提到, 不过这确实是一种编程范式.

回调函数

Node.js 的事件驱动是基于一个回调函数的. 当某个事件发生时, 这个回调函数才会被调用, 而不像传统的编程范式操作都是线性运行的: 如果需要用户的输入, 就会一直等待直到用户输入完成.

在 Node.js 中当发生了用户输入这个时间之后才回去调用回调函数完成之后的工作, 这也就是为什么

Node.js 比较适合实现高并发 IO 系统.

总结

学习 Node.js 的主要目的是为我的 iOS 应用搭建 Web api, 所以, 我并没有选择 Express 而是选择了 restify, 这是一个专门用于搭建 Web api 的框架, 没有模板啊与 Web 前端相关的东西.

接下来我会继续学习 Node.js 尤其是 restify, “精通”这门优雅的”语言”.

备注

① 知乎上的Node.js学习路线:

https://www.zhihu.com/question/21567720

② 《Node入门》:

https://www.nodebeginner.org/index-zh-cn.html

③ 《Node.js权威指南》:作者 陆凌牛

④ Node.js官网:

https://nodejs.org/en/

相关文章

  • 如何优雅地学 Node.js

    作者:Draveness 学习 Node.js 的路线图我是在知乎找到的我目前学习 Node.js 的方式就是按照...

  • 如何优雅地学 Node.js

    作者:Draveness 学习 Node.js 的路线图我是在知乎找到的我目前学习 Node.js 的方式就是按照...

  • 2018-01-03

    学习顺序以及资源 node 入门 《nodejs入门》 如何系统地学习Node.js?

  • 如何优雅地学习新媒体文章?

    不知大家是否有过这样的经历: 在路上打开微信,看到一条钟意的朋友圈文章,就点了进去。但我们不是仔细读完,而是随着手...

  • 学会了这个技巧,用 Kindle 学外语更轻松

    很久以前,在我写《如何用 Kindle 优雅地学英语》时就遇到读者问及小语种词典的获取问题,而最近也有在一些平台收...

  • 如何优雅

    如何优雅?这是一个很流行,也很值得追问的问题。 如何优雅地读书?如何优雅地喝茶?如何优雅地跑步?如何优雅地追求女神...

  • 扒一扒如何系统地学习Node.js

    Node: 1.《nodejs入门》,才38页,很好,书中项目做一下,学会基础 2.《nodejs开发指南》。18...

  • 发布/订阅模式

    《深入浅出 Node.js》阅读随笔 Node.js 下使用发布/订阅的模式写程序,可以很优雅的解藕业务逻辑,尤其...

  • 【翻译】Node.js 教程 —— 管道

    上节课使用了读写流进行读写数据,这种读写流的方式在 Node.js 中很常见。因此在 Node.js 中有更优雅的...

  • 如何优雅地使用 KVO

    如何优雅地使用 KVO 如何优雅地使用 KVO

网友评论

    本文标题:如何优雅地学 Node.js

    本文链接:https://www.haomeiwen.com/subject/lvltgqtx.html