@Wangww0925
2019-08-07T08:03:55.000000Z
字数 3068
阅读 213
NodeJs
再讲nodejs之前我们先了解下浏览器和服务器各自的特点
浏览器的特点:发送请求 接受请求 处理请求(渲染页面)
服务器的特点:接受请求 处理请求(操作数据库) 响应请求
NodeJs不是一门编程语言,是一个javascript的运行环境,NodeJs是采用C++语言编写而成的一个javascript的解释器
通俗讲指一种语言想要实现相关的功能需要另外一种事物(可以使语言也可以是其他的东西)作为它的载体或这运行平台。
在客户端,javascript想要实现某种功能是需要浏览器提供支持,如果没有浏览器提供支持是完成不了的。
操作系统的运行环境,就是电脑硬件本身,如果连电脑都没有,那么操作系统无法运行。
因为NodeJs采用的是Google Chrome浏览器的V8引擎,而V8引擎就是Javascript的运行环境,但是NodeJs是服务器端的运行环境
Node.js 提供了一个简单的方法以列出所有依赖项,以及通过 process 全局对象,借助特定的二进制包发布的不同版本。由于是 V8 引擎,在你的终端输入以下命令就可以获取相关版本号:
node -p process.versions.v8
Node.js 就是运行在服务端的JavaScript
Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台
Node.js 是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好
事件:在客户端js中有 点击按钮事件/鼠标事件/键盘事件等都叫做事件
事件驱动:有鼠标或者键盘引起一连串的操作动作叫做事件驱动
简单理解:通常事件驱动会伴随着相对应的程序处理或者函数的执行
对于磁盘 I/O = 读写
对于网络 I/O = 收发请求
指在执行I/O的过程时候,会阻塞其他应用程序的进行,只有等待这个I/O完成后,才会进行其他的操作
指在执行I/O的过程时候,不会等待其应用程序执行完成后在执行其他应用程序,当I/O结束后,在回头处理这个结果。 即异步
程序按照逻辑顺序执行,前面的必须处理完成,后面的才会执行,即在同一个时间里面只能做一件事情。如:你在点击按钮出现弹窗的时候,就不可以对浏览器做出其他的相应操作
程序在一个时间里面可以做多个事情,能够提高效率,例如迅雷同时下载多个小电影
javascript作为单线程,由其内容所决定,在浏览器环境中,JavaScript的主要用操作DOM。如果JavaScript同时有两个线程,一个线程在某个DOM节点上添加内容,另一个线程删除了这个节点,这个时候没法搞?
I/O操作都是比较耗时的,这个会阻塞其他的任务进行,javascript的设计者认为,没有必要等待I/O的完成,在I/O任务完成之前javascript完全可以继续执行其他的任务,直到I/O任务完成后再回头执行该任务的返回就行。所以javascript在设计之初中将这些耗时的I/O等操作封装为了异步的方法,等到这些任务完成后就将后续的处理操作封装为JavaScript任务放入执行任务队列中,等待JavaScript线程空闲的时候被执行
声明变量、函数
数值、字符串、对象、数组、函数、布尔、undefined
不同的数据类型的属性和方法
浏览器端:window
NodeJs:global
PS:因为js的运行环境不同,所以两者的全局对象下的属性和方法基本上都是不同的(即window下的属性和方法在nodejs中没有,global中的属性和方法在浏览器端也是没有的)
不需要配置环境变量,安装过程中已经自动完成环境变量的安装。
什么叫做环境变量: 就是在系统的任何目录下,都能运行c:\program files\nodejs里面的程序。
如果安装成功,会显示想对应的node版本号
node -v
查看Node.js的包管理工具npm的版本工具
npm -v
cmd键入node 回车
代表进入了交互环境可以进行类似浏览器console控制台的操作
或
在nodejs的 安装目录
中找到 nodejs.exe
双击打开
也是进入了repl交互环境
连续两次ctrl + c 即可
demo.js 文件
console.log("aaaa")
node 执行: cmd需要指定到当前文件目录
node demo.js
打开cmd,键入node进入命令交互模式,可以输入一条代码语句后立即执行并显示结果,例如:
$ node
> console.log('Hello World!');
Hello World!
如果想修改程序,必须中断当前运行的服务器,重新node一次,并刷新页面,才行。
重新node: `ctrl + c 两次` 打断挂起的服务器程序,此时按 `上箭头` ,能够快速调用最近的node命令。
作者 wendy
2019 年 1月 21日