2 Nodejs02 API

作者: 官清岁月 | 来源:发表于2019-05-12 07:46 被阅读0次

1、Nodejs基本认知  -> 高并发(异步I/O、非阻塞式I/O)、高性能(chrome v8引擎)、事件驱动单线程

(1).其是基于Chrome V8引擎的javaScript运行环境;//Chrome V8引擎是C++写的,Nodejs也是用C++写的,两者可完美契合,v8是市面上最好的引擎,这也是Nodejs高性能的原因;

(2).事件驱动、非阻塞式I/O模型,使其轻量又高效;//异步I/O,非阻塞I/O也称为non-block

(3).Node.js的包管理器npm,是全球最大的开源库生态系统;//node package manage(包管理器),其提供了很庞大的库,存储在自己的服务器中,所有开发者都可使用其下载对应的库 -> 可在官网查看每个库的详细介绍:https://www.npmjs.com/

- - - >>> 严格意义来说nodejs不是单线程,能做到大量异步怎么会是单线程,其给人感觉是单线程,但其有线程池,整个体系是多线程的,系统自动管理,开发者不用理会;(多线程有通信,死锁等系列问题)

2、API使用 -> nodejs的核心便是模块间的相互调用,模块可使用内置的也可自定义模块;其遵循CommonJS模块化规范;-> require();//引入内置模块以及npm下载的模块不用写路径,引入自定义模块必须写路径,后缀名可省略;

(1).nodejs下载(npm也会随同下载)

成功安装

(2).运行js代码:两种方式都可“跑”起来,建议使用第二种方式,代码和终端分离;[终端是linux中的叫法,window中称为命令行] ->WebStorm中右键“run”也可跑起来

(3).Global全局对象 -> 等同于浏览器中的window对象,有些变量和方法可直接使用的原因是因为其挂载到了Global全局;

- - - >>> 特殊:

exports,module,require(),__filename,__dirname,;这五个变量可直接使用,看似是全局变量,实则并不是,它们作为形参存在于函数中; -> NodeJS的模块是运行在一个函数中的,函数名、实参都是系统操作的,但可以确定该函数必然存在;->可在单独的js文件中执行console.log(arguments);//虽然编辑器中提示错误,但依旧可以运行,并且打印出相关的值,编辑器报错的原因是arguments必须在函数中使用,在函数外部使用会报错;

(1).module.exports、exports的区别:它们都是对象指向同一空间;                      console.log(module.exports == exports);//true; module.exports.a = 3; exports.b = 5;最终导出的对象{ a: 3, b: 5};若module.exports = 3, exports = 5;最终导出的是数字3;-> 因为内存空间变化了,若module.exports与exports同时使用,最终module.exports导出的是最终结果,因此开发中建议全部使用module.exports导出;

(2).require();//导入系统模块不用写路径,导入自己封装的模块需要写路径;-> 若其只是引入不赋值给某个变量时,其会执行引入文件的代码,也就是其会将某文件引入进来;开发中导出、导入配套使用;

(3).module;//其也是对象,exports是其的属性 -> exports也是对象;

(4).__filename;//文件名,绝对路径;

(5).__dirname;//路径名(不包含xx.js),绝对路径;

3、nodejs内置模块

(1).事件模块: 

[1].大多数Node.js核心API都是采用惯用的异步事件驱动架构 (fs/http都是如此)

[2].所有能触发事件的对象都是EventEmitter类的实例

[3].事件流程:引入模块--> 创建EventEmitter对象 --> 注册事件 -->触发事件

(2).fs模块: 文件系统模块(filesystem)  ->引入fs模块-->调用方法-->异常捕获;

(3).net模块

(4).Http创建服务器模块

相关文章

  • 2 Nodejs02 API

    1、Nodejs基本认知 ->高并发(异步I/O、非阻塞式I/O)、高性能(chrome v8引擎)、事件驱动单线...

  • NodeJs02

    url模块 ------------------------------------- req.url 表示用户的...

  • nodejs02

    ECMAScript global 声明的变量,不会添加到global 在客户端的环境下,全局变量会添加到wind...

  • NodeJs02

    NodeJs语法: NodeJs中习惯用单引号 学习资源 ES6 入门教程:http://es6.ruanyife...

  • 通过文件暴露 Pod 信息给容器

    Downward API 的动机 1、Downward API 存储 Pod 字段 2、Downward API ...

  • 小程序api列表汇总

    1)网络 API 列表: 2)媒体 API 列表: 3)文件 API 列表: 4)数据 API 列表: 5)位置 ...

  • 2020-01-07

    API2WGr60管线钢API2WGr60的生...

  • API测试系列(目录)

    API测试系列(1) 为什么API很重要?| API测试现状 API测试系列(2) API测试的特别之处

  • 构建API服务器5

    Version 2 API 修改config/routes.rb 生成API::V2::UsersControll...

  • 组合api、setup()用法

    setup()是组合API(Composition API)入口 一、组合试API和选项试API vue2中的...

网友评论

    本文标题:2 Nodejs02 API

    本文链接:https://www.haomeiwen.com/subject/cqeciftx.html