设为首页 收藏本站
查看: 742|回复: 0

[经验分享] Node.js[0] 简介

[复制链接]

尚未签到

发表于 2017-2-23 10:29:33 | 显示全部楼层 |阅读模式

  • Node.js[5] connect & express简介
  • Node.js[4] 第一个模块
  • Node.js[3] 俯瞰API (整理中)
  • Node.js[2] Hello Node
  • Node.js[1] 俯瞰NPM
  • Node.js[0] 简介
  学习node的过程很美妙,不断有新的概念出现;这个过程也大大拓展了技术视野,之后会把学习中遇到的点点滴滴整理出来。
Node是什么?
  “Node.js”是官方称呼,交流多用node简称。
  Ryan Dahl给Chrome V8 Javascript引擎添加了一组友好的Javascript API,并让V8能够独立运行于多个平台上(暂且把V8看做是js虚拟机),这样js也能写出跨平台非浏览器页面的应用。
  关于node是什么?github上node项目的readme标题为“Evented I/O for V8 Javascript”,也能看出node给自己的定位; 下面是一小段node代码,实现了一个简单http server:


var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen(1337, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');  node本身只提供实现应用程序的精简api集合。为了让node能提供更强大的功能,Ryan借鉴了Perl、Python等语言的经验,提出了NPM(Node Packaged Module,暂且叫模块)的概念,并创建了一整套的模块发布、安装、依赖管理机制;node后来的成功,也是所有node社区成员共同努力的结果,NPM起了关键的作用。
  更多node介绍可查看这里。

Node为何成功?
  node最初的宣传“噱头”是单线程异步编程模型单线程意味着编程复杂性更容易控制;node事件驱动的异步编程模型实现的非阻塞IO,可以编写出更高并发量的网络程序(如web server);对某些特定应用场景是非常有吸引力的,比如Twitter的tweet处理队列,其他应用场景包括:RESTFUL API、实时数据统计;总的来说,高并发小数据量的场景比较适合node。
  不可否认node概念新颖,初期尤其对前端工程师吸引力巨大,因为不需要花费太大代价就能实现浏览器之外的相当丰富的功能;从NPM Registry也能看出来,早期的项目以前端为主。
  node发展飞快,随着node名声鹊起,也吸引了更多非前端程序员的加入,我们看到了诸如关系数据库、no-sql、MVC framework 等类型更为丰富的模块出现了。
  node发展过程获得了node社区的大力支持,从NPM Registry站点的火热程度可见一斑;截止2012-11-17已有17700+模块,目前仍然在持续增长中(后续会专门介绍NPM)。
  这些因素一起推动了node在数年内就风靡全球。

“磨刀不误砍柴功”

Node资源
  现在安装node变得很简单,支持多个平台;
  API文档:官方 第三方NPM
  入门书籍,好书不在多


  • 《NodeJs Beginner》中文版,开源node教程;实现了一个完整精悍的Web应用,包含:server、router、handler
  • 《Node for Front End Developers》,简练而较全面地介绍了node的网络、数据、MVC等方面的原生技术和第三方模块
  更多的资源可以访问nodejs.org

Git & Github
  进入node的世界,git成了最常见的源码管理工具;希望多了解git,可以参考开源git教程《ProGit》。
  github是目前最火的git远程库托管中心;github制作之精良、热度之高只有亲身体会一下才能了解;目前github上前端项目总量排名第一 DSC0000.png

IDE
  Sublime、Notepad++、EditPlus、Ultra Editor都行;个人觉得WebStorm实在强悍,值得一试。

之后的安排
  希望在开始介绍代码之前能让大家看到一个活的node,一个真正改变我们技术生活的node;所以首先介绍NPM,简介+所有模块分类+热门模块介绍;之后可能有:


  • node开发环境
  • node api结构剖析
  • 动手开发一个模块
  • connect & express简介
  • connect源码分析
  • express源码分析
  • grunt

  暂时想到这些。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-346088-1-1.html 上篇帖子: HTTP中的URL长度限制 下篇帖子: 社区网站系统 jsGen
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表