Node.js的一些基本概念
1. Node.js简介
1.1 Node.js是什么
简单的说 Node.js 就是运行在服务端的 JavaScript。
- Node.js是一个能够在服务器端运行JavaScript的开放源代码、跨平台JavaScript运行环境。
- Node采用Google开发的V8引擎运行js代码,使用事件驱动、非阻塞和异步I/O模型等技术来提高性能,可优化应用程序的传输量和规模。Node大部分基本模块都用JavaScript编写。在Node出现之前,JS通常作为客户端程序设计语言使用,以JS写出的程序常在用户的浏览器上运行。Node主要用于编写像Web服务器一样的网络应用,这和PHP和Python是类似的。但是Node与其他语言最大的不同之处在于,PHP等语言是阻塞的而Node是非阻塞的。
- Node是事件驱动的。开发者可以在不使用线程的情况下开发出一个能够承载高并发的服务器。其他服务器端语言难以开发高并发应用,而且即使开发出来,性能也不尽人意。Node正是在这个前提下被创造出来。Node把JS的易学易用和Unix网络编程的强大结合到了一起。
- Node.js允许通过JS和一系列模块来编写服务器端应用和网络相关的应用。核心模块包括文件系统I/O、网络(HTTP、TCP、UDP、DNS、TLS/SSL等)、二进制数据流、加密算法、数据流等等。Node模块的API形式简单,降低了编程的复杂度。使用框架可以加速开发。常用的框架有Express.js、Socket.IO和Connect等。
1.2 Node.js的历史
1.3 Node.js主要能干什么
- Web服务API,比如REST
- 实时多人游戏
- 后端的Web服务,例如跨域、服务器端的请求
- 基于Web的应用
- 多客户端的通信,如即时通信
2. Node.js基本使用
2.1 基本使用
这里是基于windows下cmd进行Node.js命令的编写
除此之外,编写js文件,在命令行中通过 “node fileName” 的方式也可以执行文件中的命令
当然,上面两种方式在windows下都极为不方便,我采用的是HBuilder中集成Node.js插件的方式进行开发和调试
2.2 创建简单应用
如下图,我创建了一个简单应用并启动
可以在本机8888端口查看到响应
下面对这段代码进行分析
2.3 Node.js应用的组成部分
Node.js应用由以下三部分组成:
- 引入required 模块:我们可以使用 require 指令来载入 Node.js 模块。
- 创建服务器:服务器可以监听客户端的请求,类似于 Apache 、Nginx 等 HTTP 服务器。
- 接收请求与响应请求: 服务器很容易创建,客户端可以使用浏览器或终端发送 HTTP 请求,服务器接收请求后返回响应数据。
2.3.1 引入 required 模块
使用 require 指令来载入 http 模块,并将实例化的 HTTP 赋值给变量 http
//请求(require)Node.js 自带的 http 模块,并且把它赋值给 http 变量。 var http = require('http');
2.3.2 创建服务器
使用 http.createServer() 方法创建服务器,并使用 listen 方法绑定 8888 端口。 函数通过 request, response 参数来接收和响应数据。
//调用 http 模块提供的函数: createServer 。这个函数会返回 一个对象,这个对象有一个叫做 listen 的方法,这个方法有一个数值参数, 指定这个 HTTP 服务器监听的端口号。 http.createServer(function(request,response){ //发送http头部 http状态值: 200:OK 内容类型:text/plain response.writeHead(200,{'Content-Type':'text/plain'}); //发送响应数据 response.end('Hello EveryOne!!'); //服务响应绑定在8888端口 }).listen(8888);
2.3.3 接收请求和响应请求
以上代码我们完成了一个可以工作的 HTTP 服务器。启动该服务器,通过浏览器访问或者自定义发送请求可测试响应。