javascript代码实例教程-让我欲罢不能的node.js

发布时间:2019-02-17 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了javascript代码实例教程-让我欲罢不能的node.js脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
小宝典致力于为广大程序猿(媛)提供高品质的代码服务,请大家多多光顾小站,小宝典在此谢过。 从我大一接触第一门编程语言C开始,到现在工作三年陆续接触到了C、汇编、C++、C#、Java、JavaScript、PHP,还有一些HTMLCSS神马的,从来没有一门语言让我像对node.js一样的着迷。接触nodejs在我之前博客提到过在搞web socket在选择服务器的时候很多人推荐nodejs版的,无奈当时对nodejs没有任何概念,所以没看懂人家写的代码,但是感觉很熟悉,网上基本是以在服务器端运行的javascript来解释什么是nodejs,这就让我更疑惑了,javascript怎么可能做socket服务器,在用C#写出服务器后回头看了一下node.js,十分钟之后我就被完全吸引住了。

 

补记:由于写博客是对nodejs处于了解语法阶段,很多问题没有说清楚,点反对的人不少,关于一些原理性东西可以看看关于node.js的误会

 

什么是node.js

到底什么是node.js呢?看看官网对nodejs的描述:

 

Node.js is a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes IT lightweight and efficient, PErfect for data-intensive real-time applications that run across distributed devices.

 

我们可以对此总结出几点

 

node.js是一个构建在Chrome JavaScript运行环境的平台,这是很重要一点,node.js并不是一门语言,而是一个平台

node.js致力于使构建速度快、稳定的网络程序更简单

node.js具有事件驱动和非阻塞I/O的特色,使之轻量级并且高效率

node.js非常适合在分布式设备运行数据密集型实时应用程序

服务器端运行的JavaScript?

Chrome JavaScript runtime也就是我们常说的 Chrome的V8 JavaScript Engine,也就是Goole开发的一个用于Chrome浏览器的底层JavaScript引擎,用于解析JavaScript语句创建其运行环境,保证我们写的语句在浏览器上的表现和我们预期的一致。

 

那么为什么说node.js是服务器端运行的JavaScript?好好地nodejs干嘛要和V8扯上关系?除了GOOGLE搞的V8解释JavaScript十分的快,十分重要的一个原因是V8 JavaScript 引擎并不仅限于在浏览器中运行,可以嵌入任何应用程序中运行。Node.js 和.net framework类似是一个平台(这里有些搞不明白,望大神们指点一二),但它没有像.net一样创造了一门语言——C#在这个平台上运行,而是很巧妙的借用了web开发人员已经非常熟悉的JavaScript语法,使用V8引擎来解析语句,并将其重建可在服务器上使用。所以严格上说node.js并不是服务器端运行的Javascript,而是可以在服务器端运行JavaScript语法的平台。 

 

为什么要用node.js

搞了天就是一个新瓶装旧酒的东西,看起来除了一个新鲜的可以使用JavaScript语法,node.js没什么长处,为什么要用它而不是同样可以在服务器端运行的Java或C#呢?这要从node.js事件驱动和非阻塞I/O的特色谈起。关于事件驱动熟悉JavaScript的同学应该很熟悉了,node.js采用一系列“非阻塞”库来支持事件循环的方式。本质上就是为文件系统、数据库之类的资提供接口,比如一个数据库访问,采用事件机制,发起请求之后,立即将进程交出,当数据返回后触发事件,再继续处理数据。

 

在传统的阻塞I/O中其运行过程是这样的

 

int num=query('select * From ......');

 

PRint(num);

 

...................//无关语句

print方法必须等待query方法返回结果,如果数据库出现网络连接故障,那么print方法就要等到超时才能执行,然后后面一些无关语句才能一次执行,而在非阻塞I/O中是这样的

 

query('select * from...',callback(data){

  .............//相关语句

  print();

});

 

..............//无关语句

跟我们使用ajax,在回调函数中处理结果,但是不影响下面语句执行。 怪不得node.js要借用JavaScript来做此事,JavaScript的几个特性使它很胜任这项工作

 

事件机制

函数式编程,支持匿名函数,函数参数

Node.js中代码是单进程、单线程执行的(我们写的代码是,但node.js本身不是有兴趣同学可以看看这个进一步了解),使用事件轮询机制和非阻塞I/O,在不新增额外线程的情况下对任务进行并行处理 。node.js解决了阻塞式编程浪费大量进程资源只是在等待,导致的大量内存和cpu的浪费问题,所以才敢宣称自己perfect for数据密集型的实时web 应用程序。

如何安装

nodejs的安装还是很简单的,尤其是现在安装包都把npm集成了进去,不用单独安装了,下载下安装包运行就可以了,另外想完整使用nodejs的话需要有c语言的编译环境、git和python,使用window的同学很能会稍微麻烦一些,需要搞定这些。对命令行情有独钟的同学可以看看How to Install Node.js

 

npm是什么

 

npm是node packaged modules的缩写,其实是一个nodejs的module的管理工具

 

什么是module

 

所谓module和java中的包的概念很类似,一些解决方案的集合,官方会提供核心的几个,第三方的很多

 

如何安装第三方module

 

因为nodejs的社区很活跃,有很多好用的第三方的包,我们可以在终端中使用npm的命令安装

 

npm install [-g] <name>:使用install指令可以把nodule下载安装的nodejs的全局的path处,不加的话会安装到当前路径

npm remove <name>:移除module

npm update <name>:更新 module

还有一些常用命令可以看看npm常用命令

觉得可用,就经常来吧! 脚本宝典 欢迎评论哦! js脚本,巧夺天工,精雕玉琢。小宝典献丑了!

脚本宝典总结

以上是脚本宝典为你收集整理的javascript代码实例教程-让我欲罢不能的node.js全部内容,希望文章能够帮你解决javascript代码实例教程-让我欲罢不能的node.js所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。