node作为js在服务端的运行环境目前备受推崇,像阿里,苏宁等知名企业都把node作为渲染层来作为前后端分离的解决方案,相信以后会有更多的公司加入到node+java或其他后端语言做数据接口的实践中来,所以,如果你是一位web端开发者,学习node的知识还是很有必要的,这里不过多的讲解node的知识,因为各种书籍博客已经介绍的够多,这里只列举一下我所认为比较好的学习路线以及涉及到的一些资源的地址。
这里还是说一下,node他不是一个语言,他自身是一个基于v8引擎的javascript运行环境,他自身是多线程的,和js那个单线程没任何关系,js单线程是因为运行它的环境的js函数调用栈只有一个,他同一时间只能做一件事,但是node作为运行环境他自身维护了线程池,这也是他能够完成异步io的根本原因,这一点有很多人搞不清楚,包括一些招聘信息里~
首先我们就是要安装node,这里给出node的淘宝镜像地址,他的官网那个链接下载比较吃力。
https://npm.taobao.org/mirrors/node
这里说明一下,单数版本为非稳定版,双数版本为稳定版,推荐下载双数版本,目前最高版本为10,具体选择哪个版本根据自己的情况而定,如果安装完成后在控制台输入node -v失败,一般就是环境变量的问题,自行百度node配置环境变量。
另外,相对于npm(一般的包可以用cnpm管理,毕竟npm服务器在国外,对于外网你懂得)的包管理工具,node的工具还有nvm和nrm 这些是版本控制和源控制,如果想安装可以自行百度。
这里只附上cnpm的安装命令:npm install -g cnpm --registry=https://registry.npm.taobao.org
node安装完成后就可以开始学习了,我这里推荐在手册网看node的入门教程,这里也附上地址
http://www.shouce.ren/api/view/a/3466
这个就是最简单的应用教程,短时间就可以看一遍,如果有javascript的编程经验,那么基本没任何压力。
接下来,如果是进行web开发,那么推荐看一下express的使用,毕竟是最经典的node轻量级框架,然后可以看一下koa2,阿里也基于koa2出了一套自己的node框架egg(这名字......),其实这些文档不需要都看完,常用的功能以及写法就那么一些,初期可以根据需求选择性学习。
express官方文档:http://www.expressjs.com.cn/4x/api.html
这里附上廖雪峰大神的koa入门地址:
然后是egg官网:https://eggjs.org/zh-cn/
这里提一下egg使用了nunjucks作为自己的默认渲染模板引擎,这个也在廖雪峰大神的博客里面,可自行决定是否了解。另外js的模板引擎也挺多的,像ejs用的也比较广泛,webpack在模板页默认的就是ejs。不过如果你有分布视图的需求像razor这种模板引擎那么支持分布视图的nunjucks会是更好的选择。
然后就是es6的语法也是必须要学会的,像promise let class 解构赋值等知识以及es7的await async都是node开发中的常客,同时还有一些书籍推荐,像node深入浅出这种就是在讲解node的一些核心模块以及其运行机制,有一定node开发经验后推荐阅读。