Node.js介绍

Node.js概述

Node.js概述

Node.js的首要目标是提供一种简单的、用于创建高性能服务器及可在该服务器中运行的各种应用程序的开发工具。

实现高性能的服务器

  1. Node.js运行的是高性能 V8 JavaScript脚本语言,该语言是一种可以运行在服务端的JavaScript脚本语言。V8 JavaScript 引擎是由Google公司使用C++语言开发的一种高性能JavaScript引擎。不止在浏览器中运行,Node.js将其转用在了服务器中,提供了各种不同用途的API。
  2. 意味开发者编写的高端JavaScript脚本代码与开发者编写的低端的C语言具有非常相近的执行效率。

非阻塞型I/O及事件环机制

  1. 非阻塞型I/O
    例如在传统的单线程处理机制中,执行了访问数据库的代码之后,整个线程都将暂停下来,等待数据库返回的查询结果之后才能继续执行其后面的代码,I/O操作阻塞了代码的执行,降低了程序的执行效率。而Node.js采用非阻塞型I/O机制,执行了访问数据库的代码之后将立即执行后面的代码,把数据库返回结果的处理代码放在回调函数中执行,从而提高程序的执行效率。

  2. 事件环机制
    在Node.js中,在一个时刻只能执行一个事件回调函数,但是在执行一个事件回调函数的中途可以转而处理其他事件(包括触发新的事件,声明该事件的回调函数等),然后返回继续执行原事件回调函数,这种处理机制称为事件环机制。

Node.js适合开发的应用程序

当应用程序需要处理大量并发的输入/输出,而在向客户端发出响应之前,应用程序内部并不需要进行非常复杂的处理的时候。

  1. 聊天服务器:存在大量用户与聊天服务器之间的并发连接,而服务器本身并不存在非常复杂的处理。
  2. 综合服务类网站或电子商务网站的服务器。

示例应用程序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// 引入http模块
const http = require('http');
// createServer方法创建用于接受HTTP客户端请求并响应的HTTP服务器应用程序
http.createServer(function(req,res) {
/**
* req:客户端请求对象,res:服务端所做出的响应对象。
* 响应状态码定义200,内容类型text/html。
* 定义utf-8为了在浏览器中显示中文
* 通过响应对象的end方法输出一行HTMl代码并结束响应流
*/
res.writeHead(200,('Content-Type':'text-html'));
res.write('<head><meta charset="utf-8"/></head>')
res.end('hello word')
}).listen(8081);