1使用JavaScript运行于服务端的平台上,自然继承了JavaScript语言的一些特性;2Node.js基于单线程、基于非阻塞I/O模型实现;3适合于数据密集型应用,不适用于计算密集型类的应用(如算法等);4通过使用回调函数,来避免同步地等待I/O操作完成;5Node.js非核心模块非常多,质量可能参差不齐(使用别人贡献的模块,要有承担风险的准备);6因为简单,开发Node.js应用程序效率很高;7调试相对困难,调试工具可能没有其他一些比较成熟的语言(如Java、C++等)的好用;8Node.js基于事件驱动架构,events模块是Node.js最核心的模块。
1使用JavaScript运行于服务端的平台上,自然继承了JavaScript语言的一些特性;
2Node.js基于单线程、基于非阻塞I/O模型实现;
3适合于数据密集型应用,不适用于计算密集型类的应用(如算法等);
4通过使用回调函数,来避免同步地等待I/O操作完成;
5Node.js非核心模块非常多,质量可能参差不齐(使用别人贡献的模块,要有承担风险的准备);
6因为简单,开发Node.js应用程序效率很高;
7调试相对困难,调试工具可能没有其他一些比较成熟的语言(如Java、C++等)的好用;
8Node.js基于事件驱动架构,events模块是Node.js最核心的模块。
node.js和apache没什么联系吧,只是php通常需要apache作为网页服务器,而node.js本身就自带一个web服务器。
通俗的来说,node.js就是一门”用js语法的服务器开发语言“,所谓服务端开发语言,php,java,c#都是,他们各自有各自的语法。而javascript通常是一门运行在浏览器上的前端开发语言。
node.js的语法上的特别之处在于,他没有自己再独创一门语言和语法,比如”aava,bava,cava“之类的。他用前端语言javascript包装了底层实现,使你能够用javascript的语法做服务器端的开发。也就是说,你只要熟悉javascript,你就可以像使用php,java那样编写后台代码了。
至于node.js通常适用于高并发的场景,因为它没有多线程的概念,比如你做一个写文件的操作,当一个请求执行到耗时间的写文件这一步的时候,进程会将这个操作交给后台执行,本身继续执行别的请求。这样的好处在于少了创建销毁线程的开销,使主进程永远处于满载状态。
抛开技术,我们先来聊聊你以及你和JavaScript的关系。
本章的主要目的是想让你看看,对你而言是否有必要继续阅读后续章节的内容。如果你和我一样,那么你很早就开始利用HTML进行“开发”,正因如此,你接触到了这个叫JavaScript有趣的东西,而对于JavaScript,你只会基本的操作——为web页面添加交互。
而你真正想要的是“干货”,你想要知道如何构建复杂的web站点 —— 于是,你学习了一种诸如PHP、Ruby、Java这样的编程语言,并开始书写“后端”代码。与此同时,你还始终关注着JavaScript,随着通过一些对jQuery,Prototype之类技术的介绍,你慢慢了解到了很多JavaScript中的进阶技能,同时也感受到了JavaScript绝非仅仅是window.open() 那么简单。
.不过,这些毕竟都是前端技术,尽管当想要增强页面的时候,使用jQuery总让你觉得很爽,但到最后,你顶多是个JavaScript用户,而非JavaScript开发者。然后,出现了Node.js,服务端的JavaScript,这有多酷啊?于是,你觉得是时候该重新拾起既熟悉又陌生的JavaScript了。
但是别急,写node.js应用是一件事情;理解为什么它们要以它们书写的这种方式来书写则意味着——你要懂JavaScript。这次是玩真的了。
问题来了: 由于JavaScript真正意义上以两种,甚至可以说是三种形态存在(从中世纪90年代的作为对DHTML进行增强的小玩具,到像jQuery那样严格意义上的前端技术,一直到现在的服务端技术),因此,很难找到一个“正确”的方式来学习JavaScript,使得让你书写Node.js应用的时候感觉自己是在真正开发它而不仅仅是使用它。因为这就是关键: 你本身已经是个有经验的开发者,你不想通过到处寻找各种解决方案(其中可能还有不正确的)来学习新的技术,你要确保自己是通过正确的方式来学习这项技术。
当然了,外面不乏很优秀的学习JavaScript的文章。但是,有的时候光靠那些文章是远远不够的。
你需要的是指导。本书的目标就是给你提供指导。
不知道题主所说的 JavaScript 基础具体有多少。JavaScript 本身是一门很完备(虽然坑也不少)的编程语言,有不少人随便用用 jQuery 就说自己有 JavaScript 基础,而对 JavaScript 的闭包,内存管理,原型链等特征的了解很少。
如果你真的对 JavaScript 这门语言很了解的话,那么可以给你省一些时间——你不用再去学习 JavaScript 的语法了,Node.js 运行的是标准的 JavaScript.
不然的话,你还是需要学习一下 JavaScript 的语法,因为相比之下,后端的代码(和简单的前端页面相比)逻辑更复杂,组织起来需要用到 JavaScript 的更多高级特征。
然后,Node.js 只是一个 JavaScript 的运行环境(或者说是一组库), 为标准 JavaScript 补充了有关异步 IO, 即读写网络和文件的功能。
一个库嘛,无非是调调 API 什么的,除了略反人类的事件回调之外,和其他后端语言(PHP, Python)也差不了多少。
如果你已经了解过其他后端语言的话,会觉得不过是换汤不换药,就那么几个关键点,用 JavaScript 的语法重写一遍,用事件回调的思想重构一下而已。
但如果你对后端语言的工作原理完全没了解的话,你还需要了解一下 HTTP 协议,了解一下后端是如何处理一个请求的。
总之,学习 Node.js 我觉得分为三个部分:
JavaScript 语法——如果已经有 JavaScript 基础的话会比较容易,这部分推荐『JavaScript 语言精粹』这本书
一般后端语言的原理——如果学习过其他后端语言会比较容易
Node.js 特有的部分:事件回调思想
Node.js是一个Javascript运行环境(runtime environment),发布于2009年5月,由Ryan Dahl开发,实质是对Chrome V8引擎进行了封装。
Node.js 不是一个 JavaScript 框架,不同于CakePHP、Django、Rails。Node.js 更不是浏览器端的库,不能与 jQuery、ExtJS 相提并论。
Node.js 是一个让 JavaScript 运行在服务端的开发平台,它让 JavaScript 成为与PHP、Python、Perl、Ruby 等服务端语言平起平坐的脚本语言。 [1]。
暑假过完就大三了,以后准备的是找前端的工作,所以很有必要了解前端行业目前的状况。
下面是我从大一进校进入一个团队初识前端到现在基本的过程的:
(我本身的专业是软件工程(数字媒体方向))
大一:
从在基本的html+css,css+div布局开始,然后学习基础的js和DOM操作、ajax,jquery框架,写一些例如图片切换的小demo。
学习过的书籍:《css权威指南》、《javascriptDOM编程艺术》(算入门的看)
业课程:c++(面向过程+面向对象,学了一年,了解基本的写法,但是从来没有实践过任何东西)
大二(上):
开始了解浏览器兼容性的写法,过程中也做过几个网站,包括兼容ie6的校园网站,基本上这个时候也在开始报外面的一些工作室切图写网页,寒假的时候学了学php基础。
学习过的书籍:《精彩绝伦的css》、《css禅意花园》(这个时候的方向基本上就是学习各种布局和网站兼容)
专业课程:数据结构、数据库(前半学期,讲了一堆理论,听的比较昏,后半学期才开始学习sql语句,所以基本上学完这课我就只会一些基础的sql语句)、计算机网络(我挺感兴趣的一门课,奈何老师普通话不给力,全是自学的)
大二(下):
这
个时候自己就开始觉得要找准以后的方向了,然后就决定做前端开发了,咨询过一些在BAT工作和实习的学长们,感觉前端还是比较缺人的,所以就准备等大三结
束就开始参加实习生招聘,然后基本上学长们给的就是做前端js基础很重要,所以这个时候我又开始慢慢的进一步开始学习js了、逛一些论坛,看一些js的面
试题、然后这个时候也在接触html5 canvas、svg、node.js
了解了模块化、移动端开发这些算比较时髦的词儿,当然都是止步于照着文档写个demo的程度
学习过的书籍:《javascript高级
程序设计》(第一遍看完)、《javascript语言精粹》(本来准备是再看一遍红皮书的,后来一学长推荐我看看这个)、《编写可维护的
javascript》(感觉对编码风格还是有帮助,但是后面自动化那些章节感觉都用不上)、《javascript设计模式》(网上一些论坛推荐了,反
正看了一小半觉得看不下去了,也感觉现在还用不上)
专业课程:java程序设计(学习了java的基础语法、Socket编程、jsp基础(写过一些基于mvc的登录注册的demo))。
上面基本上就算是进入大学后的学习的清单了,其实大学大部分时间也是玩儿,毕竟两年时间要是认真的话不止这么点儿。
所以现在其实我是比较迷茫我大三应该学习的方向的,感觉不是很明朗、接下来我是准备的是要开始看看jquery的源码、然后平时也在看看一些特效的教程。
然后还有一点是对于后端语言的学习,估计因为是自己要准备找前端的工作,所以平时大部分时间都是学习前端,对后端就不会很上心,之前看过简单的php写过
一个小网站的demo,像我本身的专业课上是有学习过jsp的,我都只能算会写老师叫的东西,自己没有去深入的了解一些拓展,虽然我知道这样感觉比较浮
躁,但是我现在又说服不了自己去好好的学习。
首先,必须了解nodejs的相关知识的综述,这是第一步,也是基础。
然后开始有计划的去学习教程,教程作为基础的书籍,必须每天有计划的去进行相关的学习。该掌握nodejs的基础知识必须掌握。
在学习教材的时候,可以借助相关的辅导书,这样更有助于对nodejs基础知识的掌握。在具备一定的基础知识后,可以进行一定量的网课的学习,这是为了更好的去把握重点。
在学习的过程中,也可以找一些自己的朋友,一起准备,这样更有一种学习的氛围。也可以相互的交流。
一起交流nodejs的相关知识。另外,自己要主动的去在实际中去应用nodejs的相关的知识。
声明:本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
蜀ICP备2020033479号-4 Copyright © 2016 学习鸟. 页面生成时间:3.080秒