Node.js简介——基于Node.js搭建自动化测试环境

有必要整理一下Node.js基础知识啦!

                                                       哈哈哈

Node.js是什么 

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。 
Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。 

 Node.js不是JavaScript应用,也不是JavaScript库或框架,而是一个运行环境。所谓运行环境,就是能解释和执行JavaScript代码,之前我们JavaScript都是运行在浏览器中,浏览器负责解释和执行JS代码,由于浏览器端的JS代码在运行时会受到各种各样的安全性限制,它会放到一个安全沙箱里,有很多功能不能用。对客户系统的操作是有限的,JS的能力也随之受到限制。

Node.js可以安装在很多操作系统中,作为一个后端的JS运行环境,这意味着我们可以编写系统级或者服务器端的JS代码交给Node.js去解释执行。这样,我们能够使用很多系统级的API(如文件操作、网络编程),不受浏览器限制

Node.js基于Chrome V8引擎,有很好的性能V8引擎是使用C++开发的一个解释引擎,是独立于浏览器环境,可以独立运行,也可以嵌入到C++应用程序中。为什么我们总是说Chrome V8引擎呢,因为V8引擎一出生就被Chrome浏览器拿来使用。相对于其他的JS引擎(转换成字节码来解释执行)性能非常好。V8引擎会将JS代码编译成原生的机器码并且进行了一系列优化,使得JS运行速度要快很多,这个运行速度几乎能媲美二进制的程序

事件驱动:简单理解就是点击按钮就会触发事件,触发事件就会调用函数/方法。用事件的触发来调用相关的函数/方法。JS本身存在很多依赖回调函数的异步编程,这就是典型的事件驱动。比如Ajax请求中的成功或失败需要执行的方法,并不依赖于在代码中出现的顺序,而是需要等待相应的(成功或失败)事件触发了才会执行,我们并不知道这些事件何时触发,我们也不需要知道,我们只需要知道在事件触发之后需要执行哪个函数/方法就行。事件驱动的方式,充分利用了系统资源,不需要阻塞等待

非阻塞式 I/O :配合事件驱动,提高资源利用率和性能。Node.js提供的支持模块中,包括文件操作在内的很多函数都是异步执行。

举例文件读取:若使用同步方式,找文件、读文件的过程会一直挂起等待,资源会被一直占有。而非阻塞式I/O的方式会告诉系统去读取文件,程序继续执行其他事件,只需要读完文件时告诉程序(即触发读完事件),程序再接管调用读完事件的回调函数。

Node.js安装

官网选择对应安装包下载,下一步下一步傻瓜式安装。

 命令行工具,输入node -v,判断Node.js是否安装成功,出现版本号就说明安装成功啦。

 Node.js基础使用

新建test.js文件,同级目录下新建readme.txt文件(读取文件示例)

test.js文件:

console.log('Node.js基本使用')
var fs = require('fs')
// 异步
fs.readFile('readme.txt', 'utf-8', function (err, data) {
  if (err) {
    console.log('异步', err)
  } else {
    console.log('异步', data)
  }
})
// 同步
var data = fs.readFileSync('readme.txt', 'utf-8')
console.log('同步', data)

readme.txt文件:

hello world!

命令行执行Node.js命令,输出结果:

一般来说,不推荐使用同步的方法,异步非阻塞的I/O才是Node.js的精髓

基于Node.js轻量级HTTP服务器

基于Node.js轻量级HTTP服务器有很多种,我们将以http-server为例(https://github.com/indexzero/http-server),一般提供server服务的工具建议全局安装。

npm install http-server -g

工具安装好之后,我们只要运行命令就能启动一个http服务啦,具体启动命令请参考官方文档。

http-server [path] [options]

 启动日志如下:(在浏览器中访问以下三个地址中的任意一个,就能看到src目录下的index.html咯,案例是在src目录下启动的服务)若命令行工具在“\响应式”文件中打开,要想达到上述效果,运行命令时需要带上[path]参数 http-server src

[options]参数可以指定端口、地址等等,例如指定服务在8888端口启动,http-server src -p 8888

与君共勉:再牛逼的梦想,也抵不住傻逼般的坚持!

猜你喜欢

转载自blog.csdn.net/qq_32614411/article/details/80985267