NODE

1.什么是Node?

Node.js® 是基于Chrome 的 V8 JavaScript 引擎构建的 JavaScript 运行环境。

不需要处理兼容性问题 2009.05

 

1.1Node是一个JS的运行环境

js的运行方式:

  1.客户端:把js文件引入,然后打开浏览器,控制台查看

  2.node服务端

      1.cmd窗口中cd命令切换到需要打开的文件夹下,运行 node 文件名

      2.直接在文件夹下 shift+右键

      3.vscode编辑器中直接在当前文件的终端中打开,submint编辑器是需要安装terminal插件

 

1.2对比浏览器中的JS

1.2.1 浏览器中的JS

        web api 提供了操作浏览器窗口和页面的功能。例如:BOM操作,DOM操作,AJAX

        但是这些功能有局限性。例如:跨域问题,文件读写

        

                      

1.2.2 Node中的JS

       nodeAPI几乎提供了所有能做的事情

                     

 

 

 

 

1.2.3 Node中的JS对比浏览器中的JS

      ① 浏览器提供了有限的能力,JS只能使用浏览器提供的功能做有限的操作

      ② Node提供了完整的控制计算机的能力,NodeJS几乎可以通过Node提供的接口,实现对整个操作系统控制

                   

 

1.3官方文档

Node官网:https://nodejs.org/en/

Node中文官网(民间网):http://nodejs.cn

 

 

2.Node可以做什么?

  2.1 开发桌面应用程序(例如QQ微信... 经常用的VScode就是用node开发的)

  2.2 开发服务器应用程序

      结构1:微型结构

            Node服务器要完成请求的处理响应、和数据库交互、各种业务逻辑

            这种结构通常应用在微型站点上。例如:个人博客、公司官网

           

 

 

 

      结构2:大型结构(非常常见,应用在各种规模的站点上    

            Node服务器:

            不做任何与业务逻辑有关的事情。绝大部分时候,只是简单的转发请求。但可能会有一些额外的功能

              1.简单的信息记录:请求日志、用户偏好、广告信息

              2.静态资源托管

              3.缓存

            后端服务器

            处理大型的业务逻辑

            

 

 

 

 

3.为什么要学习NodeJS?

    1. JS开发省时省力

    2. 因为nodeJS是单线程没有线程切换损耗没有线程之间的竞争

    3. IO处理非常(输入输出)

    4. node不适合处理复杂运算,例如java可以开多线程进行并行运算

    其他服务端语言(例如java,.net)能做的事情,node全部都能做。语言没有好坏之分,只有场景的适合。

    node开发者就是为了寻找快速的IO处理的语言,所以选择了JavaScript

 

4.全局对象

  global

    跟浏览器环境中的this相同,表示顶级对象

    注意:浏览器的全局环境this表示window,node中this不是表示global

      1.setTimeout,setInterval

        用法跟浏览器环境完全相同。

        注意:浏览器返回的是IDnode环境中返回的是对象

      2.setImmediate

        类似于 setTimeout 0

      3.console

        浏览器控制台输出

        node命令行输出

      4.__dirname*

        获取当前模块所在的目录

        (注意:并非global属性

      5.__filename*

        获取当前模块的文件路径

        注意:并非global属性

      6.Buffer

        类型化数组

        继承自 UInt8Array

        计算机中存储的基本单位字节

        使用时、输出时可能需要用十六进制表示

      7.process

        cwd():返回当前nodejs进程的工作目录,运行的cmd窗口的目录

        exit()*强制退出当前node进程可传入退出码,0表示成功退出,默认为0,主要是为了输入到日志里面的

        argv*获取命令中的所有参数

        platform获取当前的平台系统

        kill(pid)根据进程ID杀死进程

        env获取环境变量对象

posted @ 2021-10-23 16:38  12345上山打老虎1  阅读(103)  评论(0)    收藏  举报