Nodejs

作者: 青青玉立 | 来源:发表于2018-05-31 11:23 被阅读0次

process

process 对象是一个 global (全局变量),提供有关信息,控制当前 Node.js 进程。作为一个对象,它对于 Node.js 应用程序始终是可用的,故无需使用 require()

 process.env   属性返回一个包含用户环境信息的对象

export 和 module.export 的区别

在 node 的 js 模块里可以直接调用 exports 和 module 两个“全局”变量,但是 exports 是 module.exports 的一个引用

exports = module.exports = {};

    exports 是 module.exports 的一个引用

    module.exports 初始值为一个空对象 {},所以 exports 初始值也是 {}

    require 引用模块后,返回的是 module.exports 而不是 exports!!!!!

    exports.xxx 相当于在导出对象上挂属性,该属性对调用模块直接可见

    exports = 相当于给 exports 对象重新赋值,调用模块不能访问 exports 对象及其属性

    如果此模块是一个类,就应该直接赋值 module.exports,这样调用者就是一个类构造器,可以直接 new 实例

参考【https://www.jianshu.com/p/e452203d56c4】

REPL环境

REPL(Read-eval-print-loop):交互式解析器

 进入node,即进入了REPL环境,在命令窗口输入node

node命令行

在REPL环境下,可以定义和运行变量、函数、对象

POSIX标准

POSIX,全称为可移植性操作系统接口,是一种关于信息技术的IEEE标准。它包括了系统应用程序接口(简称API),以及实时扩展[C语言]

参考【https://www.cnblogs.com/1130136248wlxk/articles/5308863.html】

nodejs回调函数

Node.js 异步编程的直接体现就是回调  执行异步操作的函数将回调函数作为最后一个参数 

回调函数接收错误对象作为第一个参数

我们不需要等待文件读取完,就可以在读取文件时同时执行接下来的代码,大大提高了程序的性能

阻塞和非阻塞

1.阻塞:就像单线程cpu一样,一个任务由多个小任务组成,而且只能一个任务接一个任务流程的往下走,谁靠前谁先执行,执行完了进行下一个,如果遇到错误,下面的小任务就不能做了,一直卡住。

2.非阻塞:就像多线程cpu一样,一个任务由多个小任务组成,可以分开线程来做,每个线程做分配到的任务,完成了对应的任务就行,某个线程的任务没做完那就做报对应的错,其他的不受影响

stream (流)

流(stream)在 Node.js 中是处理流数据的抽象接口(abstract interface)。 stream 模块提供了基础的 API 。使用这些 API 可以很容易地来构建实现流接口的对象。

Node.js 提供了多种流对象。 例如, http请求 和process.stdout 就都是流的实例。

流可以是可读的、可写的,或是可读写的。所有的流都是 EventEmitter的实例。

stream 模块可以通过以下方式引入:

const stream = require('stream');

events (事件)

大多数 Node.js 核心 API 都采用惯用的异步事件驱动架构,其中某些类型的对象(触发器)会周期性地触发命名事件来调用函数对象(监听器)

所有能触发事件的对象都是 EventEmitter 类的实例。 这些对象开放了一个 eventEmitter.on() 函数,允许将一个或多个函数绑定到会被对象触发的命名事件上

当 EventEmitter 对象触发一个事件时,所有绑定在该事件上的函数都被同步地调用。 监听器的返回值会被丢弃

一个绑定了监听器的 EventEmitter 实例

eventEmitter.on() 方法用于注册监听器

eventEmitter.once() 方法为指定事件注册一个单次监听器

eventEmitter.emit(event,callback) 方法用于触发事件

eventEmitter.removeListener(event,callback)     移除指定事件的某个监听器  

详细用法

相关文章

  • nodejs 到底是什么?

    理解 NodeJs Nodejs 自己使用了Openssl.在Nodejs 0.6之前, Nodejs是动态链接到...

  • centos7.3安装vue-cli

    1、安装vue需要安装nodejs,先去nodejs官网下载nodejs,https://nodejs.org/e...

  • NodeJS-简介&配置

    NodeJS-简介&配置 NodeJS NodeJS 中文网 NodeJS API 一、客户端的JavaScrip...

  • gulp最佳入门@小四

    一、安装nodeJs 说明:gulp是基于nodeJS,理所当然需要安装nodeJS; 安装:打开nodejs官网...

  • 项目构建---全步骤

    nodeJS安装 1.使用bower必须要安装nodeJS,因为bower就是用nodeJS编写的,nodeJS是...

  • 笔记 第六天 nodejs模块

    nodejs模块 nodejs 的文件操作 nodejs的io键盘交互 nodejs的url判断渲染模板 node...

  • nodeJs的下载及安装

    一、下载nodeJs 1. nodeJs的下载路径 (1)nodeJs官网:http://nodejs.cn/(2...

  • nodejs笔记

    nodejs教程 :http://www.runoob.com/nodejs/nodejs-tutorial.ht...

  • Cordova入门配置

    [TOC] Cordova 安装 安装NodeJS下载NodeJS https://nodejs.org/en/...

  • NodeJS 学习资料

    nodejs资源汇总(新手)从零开始nodejs系列文章Nodejs提炼与升华(一) 前言、Nodejs简介Nod...

网友评论

      本文标题:Nodejs

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