探秘Node.js(一)——Node.js简介及安装配置
来源:互联网 发布:龙轩导航 源码 编辑:程序博客网 时间:2024/05/24 04:26
1.Node.js 简介及特点:
Node.js 是一个可以让 JavaScript 运行在服务器端的平台,它可以让JavaScript 脱离浏览器的束缚运行在一般的服务器环境下,就像运行 Python、 Perl、 PHP、 Ruby 程序一样。我们可以用 Node.js 轻松地进行服务器端应用开发,Python、 Perl、 PHP、 Ruby 能做的事 Node.js 几乎都能做,而且可以做得更好。
Node.js 最大的特点就是采用异步式 I/O 与事件驱动的架构设计。对于高并发的解决方案,传统的架构是多线程模型,也就是为每个业务逻辑提供一个系统线程,通过系统线程切换来弥补同步式 I/O 调用时的时间开销。Node.js 使用的是单线程模型,对于所有 I/O 都采用异步式的请求方式,避免了频繁的上下文切换。Node.js 在执行的过程中会维护一个事件队列,程序在执行时进入事件循环等待下一个事件到来,每个异步式 I/O 请求完成后会被推送到事件队列,等待程序进程进行处理。
这样做的好处是,CPU和内存在同一时间集中处理一件事,同时尽可能让耗时的 I/O 操作并行执行。对于低速连接攻击,Node.js 只是在事件队列中增加请求,等待操作系统的回应,因而不会有任何多线程开销,很大程度上可以提高 Web 应用的健壮性,防止恶意攻击。当然,异步模式的弊端也是显而易见的,因为它不符合开发者的常规线性思路,往往需要把一个完整的逻辑拆分成一个个事件,增加了开发和调试的难度(Node.js 的第三方模块提出了很多解决方案)。
Node.js 用异步式 I/O 和事件驱动代替多线程,带来了可观的性能提升。Node.js 除了使用 V8 作为 JavaScript 引擎以外,还使用了高效的 libev 和 libeio 库支持事件驱动和异步式 I/O。
2.Node.js 安装和配置:
Node.js 可以安装在遵循 POSIX 标准的操作系统上,如 GNU/Linux、 Mac OS X、 Solaris等,也可以安装在 Windows 上。尽管 Windows Azure 宣布对 Node.js 完全支持,但 Node.js 与 Windows 的兼容性仍然不如 POSIX 操作系统,在 npm 提供的第三方模块中体现的尤为突出。不建议在 Windows 上进行 Node.js 的开发和部署。下面介绍一下如何在 32 位的 CentOS 6.6 上安装 Node.js :
[root@localhost ~]# cd /usr/local/src/[root@localhost src]# wget http://nodejs.org/dist/v0.12.2/node-v0.12.2-linux-x86.tar.gz[root@localhost src]# tar -zxf node-v0.12.2-linux-x86.tar.gz
由于我们下载的是免编译的安装包,所以解压后即可使用。将解压后的目录移动到任意目录,配置环境变量:
[root@localhost src]# mv node-v0.12.2-linux-x86 /opt/node[root@localhost src]# vim /etc/profileexportPATH=$PATH:/opt/node/bin[root@localhostsrc]# source !$
至此, Node.js已经安装完毕。测试 Node.js 是否已经生效:
[root@localhost ~]# vim test.jsfunction hello(){ console.log(“Hello World”);}hello();[root@localhost ~]# node test.jsHello World
出现上述结果表明,Node.js已经可以使用。
Node.js 还有很多第三方模块,通过这些第三方包可以极大的方便开发(如 Express 模块,是一个很稳定且使用很广泛的 Web 开发框架)。使用 npm 命令可以安装第三方模块,npm 类似 Ubuntu 下的 apt-get ,CentOS 下的 yum :
[root@localhost ~]# npm install -g express
由于 npm 默认是从国外源获取和下载包信息,通常来说下载速度会非常慢,可以使用其 --registry 参数自定义源:
[root@localhost ~]# npm install -g express --registry=http://registry.npm.taobao.org/
其他版本安装包可以到Node.js 官网下载,地址如下:
https://nodejs.org/download/
3.Node.js 初步了解:
刚刚我们已经介绍了一种Hello World 的方式,除此之外,还有两种方式可以做到:
(1)-e 参数:类似 JavaScript 中的 eval() :
[root@localhost ~]# node -e ‘console.log(“Hello World”);’
Hello World
(2)进入 node 的 REPL(Read-eval-print loop)循环:
[root@localhost ~]# node>console.log(“HelloWorld”);Hello Worldundefined
这里的undefined 是 console.log 的返回值。如果输入一个错误的指令, REPL 会立即显示错误并输出调用栈。连续按两次 ctrl + c 或按一次 ctrl + d 即可退出 Node.js 的 REPL 模式。该模式在应用开发时会给人带来很大的便利,例如我们可以测试一个包能否正常使用,单独调用应用的某一个模块,执行简单的计算等。
如果仅仅是 HelloWorld 未免显得太 low ,现在我们尝试使用Node.js 建立 HTTP 服务器。Node.js将 HTTP 服务器剥离,直接面向浏览器用户。
[root@localhost~]# vim app.js//app.jsvar http =require('http');http.createServer(function(req,res) {res.writeHead(200,{'Content-Type': 'text/html'});res.write('<h1>Node.js</h1>');res.end('<p>HelloWorld</p>');}).listen(3000);console.log("HTTPserver is listening at port 3000.");[root@localhost~]# node app.js
之后即可通过 http://yourhostip:3000 来访问端口号为 3000 的服务器了。这个程序调用了 Node.js 提供的 http 模块,对所有 HTTP 请求答复同样的内容并监听 3000 端口。
这里我们先对Node.js 做一个初步了解,更多内容以后慢慢展开,就酱先~
参考资料:
《Node.js 开发指南》 作者:BYVoid
本文出自 “细桶假狗屎” 博客,请务必保留此出处http://xitongjiagoushi.blog.51cto.com/9975742/1633640
- 探秘Node.js(一)——Node.js简介及安装配置
- Node.js开发入门(一)——安装Node.js及编辑器配置
- node.js 安装及配置
- 一.Node.js简介
- 用node.js建博客(一) - node.js安装及Express框架简介
- node.js安装及Express框架简介
- Node.js简介及安装开发环境
- Node.js学习(一)——Node.js的安装和express初步使用
- 安装配置node.js
- Node.js 安装配置
- Node.js 安装配置
- Node.js安装配置
- Node.js 安装配置
- Node.js 安装配置
- Node.js安装配置
- Node.js 安装配置
- Node.js 安装配置
- Node.js 安装配置
- NSString
- 学习笔记(十)——软件包管理:rpm + yum
- 学习笔记(十一)——Linux Shell 基础知识
- 多学一点(九)——使用touch命令创建指定时间的文件
- A + B for you again(KMP)
- 探秘Node.js(一)——Node.js简介及安装配置
- JavaScript中的面向对象(一)——创建自定义对象
- 工作积累(一)——使用canvas实现前台图片base64转码
- JavaScript中的函数声明和函数表达式
- 使用 .gitignore来忽略某些文件
- 走近Redis(一)——Redis安装及基本key操作
- 多学一点(十)——配置一个Tomcat使其可以多端口访问
- 多学一点(十一)——配置使用Tomcat Manager进行可视化部署
- 多学一点(十二)——使用extundelete恢复Linux下误删除文件