0%

Node.js 简单笔记

Node.js是2009年一个美国自由职业者开发的,这哥们现在去了Google Brain,玩神经网络去了。

Node主要是利用chrome V8强大的能力,执行js代码,然后加上异步IO的机制,可以实现用javascript写后台server。以前我一直以为server都得是C++写,现在才明白有个HTTP协议,加上一套框架,不就是传递数据么,没有什么高级和低级,就有高效和低效。

node写一个简单的server很容易

1
2
3
4
5
6
7
8
var http = require('http');

function onRequest(request, response){
response.writeHead(200, {'Content-type':'text/plain'});
response.write('Hello world');
response.end();
}
http.createServer(onRequest).listen(8000);

通过引入一个内置的核心模块http,就可以启动一个server,这个和python里面的方式也挺像的。

Javascript模块

很搞笑啊,一门语言中如何定义模块的引入,竟然有多种规范,有多种实现。好像ES6的import/export是正统的。但是node中还是用的另一种方式require, module.exports。这一点上还是C++简单啊,不就是include一个头文件,然后就可以用了么,然后编译时加上.so,或者.a这样不就搞定了么。这可能就是脚本语言带来的问题吧,不知道,太深奥了,超过我的能力范围了。

反正在node中如果要引入某个模块,就用require就可以了

Javascript匿名函数

匿名函数也挺搞笑,就是把函数代码作为参数传入。这里到底实现时候的依据是啥呢。

作为使用者,可能就是明白我这里不用传函数了,我就直接把代码写在那,这样开发快了么?下次再读代码时,还能看懂么?

一点感想,软件技术的高深代码好像都是开源的。为啥我就没仔细读过几个呢?仔细读几个开源代码是不是能让我的能力有提升呢?看了node作者的介绍,也觉得挺有意思,不就是一个数学系的人没找到工作,结果就去南美洲开发web去了么,看上去好像就是个loser啊。可是人家做成了一件事,结果就牛了。所以也不必太着急,慢慢来。

参考资料

1,http://www.infoq.com/cn/news/2017/09/Node-Ryan-Dahl

2,关于模块