我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Node模块系统有哪些差数

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Node模块系统有哪些差数

本篇内容介绍了“Node模块系统有哪些差数”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

模块系统

为了让Node.js的文件可以相互调用,Node.js提供了一个简单的模块系统。
模块是Node.js 应用程序的基本组成部分,文件和模块是一一对应的。
换言之,一个 Node.js 文件就是一个模块,这个文件可能是JavaScript 代码、JSON 或者编译过的C/C++ 扩展。

Node.js 中存在 4 类模块(原生模块和3种文件模块)
例:var http = require("http");

Node.js 中自带了一个叫做 http 的模块,我们在我们的代码中请求它并把返回值赋给一个本地变量。
这把我们的本地变量变成了一个拥有所有 http 模块所提供的公共方法的对象。

加载模块:

  • 从文件模块缓存中加载

  • 从原生模块加载

  • 从文件加载

    • http、fs、path、events、util等,原生模块。

    • ./mod或…/mod,相对路径的文件模块。

    • /pathtomodule/mod,绝对路径的文件模块。

    • mod,非原生模块的文件模块。

    • require方法接受以下几种参数的传递:

模块接口
  • exports 对象是模块公开的接口

  • require 对象用于从外部获取一个模块的接口,即所获取模块的 exports 对象。

//例子//hello.jsexports.world = function() {       //相当于给function()函数取了个别名world()    console.log('Hello World');  }//main.jsvar hello = require('./hello');hello.world();  //访问 hello.js 的 world 函数//结果PS E:\learn> node main.jsHello World

  • 只是想把一个对象封装到模块中:module.exports = function() {...}
    模块接口的唯一变化是使用 module.exports = Hello 代替了exports.world = function(){}。 在外部引用该模块时,其接口对象就是要输出的 Hello 对象本身,而不是原先的 exports。

exports 和 module.exports 的使用
如果要对外暴露属性或方法,就用 exports 就行,要暴露对象(类似class,包含了很多属性和方法),就用 module.exports。

//hello.js function Hello() {     var name;     this.setName = function(thyName) {         name = thyName;     };     this.sayHello = function() {         console.log('Hello ' + name);     }; }; module.exports = Hello;   //main.js var Hello = require('./hello'); hello = new Hello(); hello.setName('BYVoid'); hello.sayHello();//结果PS E:\learn> node main.jsHello BYVoid

events模块

events 模块只提供了一个对象: events.EventEmitter。EventEmitter 的核心就是事件触发与事件监听器功能的封装。

  • events 为一个模块,用 require("events"); 访问该模块。

  • EventEmitter 相当于events模块里面的唯一的一个类,该类下有多个属性

    • addListener(event, listener) 为指定事件添加一个监听器到监听器数组的尾部。

    • on(event, listener) on函数为指定事件注册一个监听器,接受一个字符串 event 和一个回调函数。

    • once(event, listener) 为指定事件注册一个单次监听器,即 监听器最多只会触发一次,触发后立刻解除该监听器

    • removeListener(event, listener)移除指定事件的某个监听器,监听器必须是该事件已经注册过的监听器。它接受两个参数,第一个是事件名称,第二个是回调函数名称

    • removeAllListeners([event]) 移除所有事件的所有监听器, 如果指定事件,则移除指定事件的所有监听器。

    • setMaxListeners(n) 默认情况下, EventEmitters 如果你添加的监听器超过 10 个就会输出警告信息。 setMaxListeners 函数用于改变监听器的默认限制的数量。

    • listeners(event) 返回指定事件的监听器数组。

    • emit(event, [arg1], [arg2], [...]) 按监听器的顺序执行执行每个监听器,如果事件有注册监听返回 true,否则返回 false。

    • listenerCount(emitter, event) 返回指定事件的监听器数量。

//例子//event.js 文件var events = require('events');            // 引入 events 模块var emitter = new events.EventEmitter();   // 创建 eventEmitter 对象//为事件someEvent注册两个监视器emitter.on('someEvent', function(arg1, arg2) {     console.log('listener1', arg1, arg2); }); emitter.on('someEvent', function(arg1, arg2) {     console.log('listener2', arg1, arg2); }); //按顺序执行someEvent的每个监视器emitter.emit('someEvent', 'arg1 参数', 'arg2 参数');  // 'arg1 参数', 'arg2 参数'为参数arg1,arg2的值
//结果$ node event.js listener1 arg1 参数 arg2 参数listener2 arg1 参数 arg2 参数

util 模块

util 是一个Node.js 核心模块,提供常用函数的集合,用于弥补核心 JavaScript 的功能 过于精简的不足。

util.callbackify(original)
将 async 异步函数(或者一个返回值为 Promise 的函数)转换成遵循异常优先的回调风格的函数

  • 参数:original 为 async 异步函数。

  • 返回值:返回传统回调函数(或者一个返回值为 Promise 的函数)

    • 在返回的回调函数中,第一个参数为拒绝的原因(如果 Promise 解决,则为 null),第二个参数则是解决的值。

//例子const util = require('util');async function fn() {  return 'hello world';}const callbackFunction = util.callbackify(fn);callbackFunction((err, ret) => {  if (err) throw err;  console.log(ret);});//结果hello world

util.inherits(constructor, superConstructor) 是一个实现对象间原型继承的函数。

//例子var util = require('util'); //Base构造函数内三个属性function Base() {        this.name = 'base';     this.base = 1991;     this.sayHello = function() {     console.log('Hello ' + this.name);     }; } //原型中定义的一个函数Base.prototype.showName = function() {     console.log(this.name);}; //Sub构造函数内一个属性function Sub() {     this.name = 'sub'; } util.inherits(Sub, Base);  //Sub从Base继承var objBase = new Base(); objBase.showName(); objBase.sayHello(); console.log(objBase); var objSub = new Sub(); objSub.showName(); //objSub.sayHello(); console.log(objSub); //结果base Hello base { name: 'base', base: 1991, sayHello: [Function] } sub { name: 'sub' }//Base 有 name , base , sayHello() , showName()//Sub  有 name(自己定义的,不是继承的) , showName() 从Base继承的

  • util.inspect(object,[showHidden],[depth],[colors]) 是一个将任意对象转换 为字符串的方法,通常用于调试和错误输出。它至少接受一个参数 object,即要转换的对象。

    • 它至少接受一个参数 object,即要转换的对象。

    • showHidden 是一个可选参数,如果值为 true,将会输出更多隐藏信息。

    • depth 表示最大递归的层数,如果对象很复杂,你可以指定层数以控制输出信息的多 少。如果不指定depth,默认会递归 2 层,指定为 null 表示将不限递归层数完整遍历对象。

    • 如果 colors 值为 true,输出格式将会以 ANSI 颜色编码,通常用于在终端显示更漂亮 的效果。

var util = require('util'); function Person() {     this.name = 'byvoid';     this.toString = function() {     return this.name;     }; } var obj = new Person(); console.log(obj);console.log(util.inspect(obj)); console.log(util.inspect(obj, true));

Node模块系统有哪些差数

fs 模块

fs.open(path, flags[, mode], callback) 在异步模式下打开文件

  • 参数:

    r 以读取模式打开文件。如果文件不存在抛出异常。
    r+ 以读写模式打开文件。如果文件不存在抛出异常。
    rs 以同步的方式读取文件。
    rs+ 以同步的方式读取和写入文件。
    w 以写入模式打开文件,如果文件不存在则创建。
    wx 类似 ‘w’,但是如果文件路径存在,则文件写入失败。
    w+ 以读写模式打开文件,如果文件不存在则创建。
    wx+ 类似 ‘w+’, 但是如果文件路径存在,则文件读写失败。
    a 以追加模式打开文件,如果文件不存在则创建。
    ax 类似 ‘a’, 但是如果文件路径存在,则文件追加失败。
    a+ 以读取追加模式打开文件,如果文件不存在则创建。
    ax+ 类似 ‘a+’, 但是如果文件路径存在,则文件读取追加失败。

    • path - 文件的路径。

    • flags - 文件打开的行为。具体值详见下文。

    • mode - 设置文件模式(权限),文件创建默认权限为 0666(可读,可写)。

    • callback - 回调函数,带有两个参数如:callback(err, fd)

fs.stat(path, callback) 通过异步模式获取文件信息

  • 参数:

    • path - 文件路径。

    • callback - 回调函数,带有两个参数如:callback(err, stats), stats 是 fs.Stats 对象。

fs.stat(path)执行后,会将stats类的实例返回给其回调函数。可以通过stats类中的提供方法判断文件的相关属性

stats.isFile() 如果是文件返回 true,否则返回 false。
stats.isDirectory() 如果是目录返回 true,否则返回 false。
stats.isBlockDevice() 如果是块设备返回 true,否则返回 false。
stats.isCharacterDevice() 如果是字符设备返回 true,否则返回 false。
stats.isSymbolicLink() 如果是软链接返回 true,否则返回 false。
stats.isFIFO() 如果是FIFO,返回true,否则返回 false。FIFO是UNIX中的一种特殊类型的命令管道。
stats.isSocket() 如果是 Socket 返回 true,否则返回 false。

fs.writeFile(file, data[, options], callback) 异步模式下写入文件
writeFile 直接打开文件默认是 w 模式,所以如果文件存在,该方法写入的内容会覆盖旧的文件内容。

  • 参数:

    • file - 文件名或文件描述符。

    • data - 要写入文件的数据,可以是 String(字符串) 或 Buffer(缓冲) 对象。

    • options - 该参数是一个对象,包含 {encoding, mode, flag}。默认编码为 utf8, 模式为 0666 ,flag 为 ‘w’

    • callback - 回调函数,回调函数只包含错误信息参数(err),在写入失败时返回

fs.read(fd, buffer, offset, length, position, callback) 异步模式下读取文件,该方法使用了文件描述符来读取文件。

  • 参数:

    • fd - 通过 fs.open() 方法返回的文件描述符。

    • buffer - 数据写入的缓冲区。

    • offset - 缓冲区写入的写入偏移量。

    • length - 要从文件中读取的字节数。

    • position - 文件读取的起始位置,如果 position 的值为 null,则会从当前文件指针的位置读取。

    • callback - 回调函数,有三个参数err, bytesRead, buffer,err 为错误信息, bytesRead 表示读取的字节数,buffer 为缓冲区对象。

fs.close(fd, callback) 异步模式下关闭文件,该方法使用了文件描述符来读取文件。

  • 参数:

    • fd - 通过 fs.open() 方法返回的文件描述符。

    • callback - 回调函数,没有参数。

fs.ftruncate(fd, len, callback) 异步模式下截取文件,该方法使用了文件描述符来读取文件。

  • 参数:

    • fd - 通过 fs.open() 方法返回的文件描述符。

    • len - 文件内容截取的长度。

    • callback - 回调函数,没有参数。

fs.unlink(path, callback) 删除文件的语法格式:

  • 参数:

    • path - 文件路径。

    • callback - 回调函数,没有参数。

fs.mkdir(path[, options], callback) 创建目录

  • 参数:

    • recursive - 是否以递归的方式创建目录,默认为 false。

    • mode - 设置目录权限,默认为 0777。

    • path - 文件路径

    • options 参数可以是

    • callback - 回调函数,没有参数。

fs.readdir(path, callback) 读取目录

  • 参数:

    • path - 文件路径

    • callback - 回调函数,回调函数带有两个参数err, files,err 为错误信息,files 为 目录下的文件数组列表

fs.rmdir(path, callback) 删除目录

  • 参数:

    • path - 文件路径

    • callback - 回调函数,没有参数。

OS 模块

属性:os.EOL 定义了操作系统的行尾符的常量。
方法:
os.tmpdir() 返回操作系统的默认临时文件夹
os.endianness() 返回 CPU 的字节序,可能的是 “BE” 或 “LE”。
os.hostname() 返回操作系统的主机名。
os.type() 返回操作系统名
os.platform() 返回编译时的操作系统名
os.arch() 返回操作系统 CPU 架构,可能的值有 “x64”、“arm” 和 “ia32”。
os.release() 返回操作系统的发行版本。
os.uptime() 返回操作系统运行的时间,以秒为单位。
os.loadavg() 返回一个包含 1、5、15 分钟平均负载的数组。
os.totalmem() 返回系统内存总量,单位为字节。
os.freemem() 返回操作系统空闲内存量,单位是字节。
os.cpus() 返回一个对象数组,包含所安装的每个 CPU/内核的信息:型号、速度(单位 MHz)、时间(一个包含 user、nice、sys、idle 和 irq 所使用 CPU/内核毫秒数的对象)。
os.networkInterfaces() 获得网络接口列表。

“Node模块系统有哪些差数”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Node模块系统有哪些差数

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Node模块系统有哪些差数

本篇内容介绍了“Node模块系统有哪些差数”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!模块系统为了让Node.js的文件可以相互调用,No
2023-07-05

erp生产系统有哪些模块

ERP生产系统的模块包括:1、生产计划模块;2、生产派工模块;3、生产领料模块;4、生产入库模块;5、生产完工汇报模块;6、生产成品质检模块。生产计划模块可以帮助企业制定生产计划,根据订单需求和库存情况,制定合理的生产计划,以保证生产效率和产品质量。
erp生产系统有哪些模块
2023-10-29

erp系统有哪些功能模块

Erp系统主要有以下四个功能模块:一、财务管理模块;二、生产控制管理模块;三、物流管理模块;四、人力资源管理模块。企业中,清晰分明的财务管理是极其重要的,所以在ERP整个方案中它是不可或缺的一部分,一般的ERP软件的财务部分分为会计核算与财务管理两大块。
erp系统有哪些功能模块
2023-10-29

Node模块化的知识点有哪些

今天小编给大家分享一下Node模块化的知识点有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。什么是模块化模块化是指解决一
2023-07-04

node常用的内置模块及其功能有哪些

本篇内容主要讲解“node常用的内置模块及其功能有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“node常用的内置模块及其功能有哪些”吧!http在Node.js中,http是一个内置模块,
2023-07-05

node模块相关的面试题及答案有哪些

本文小编为大家详细介绍“node模块相关的面试题及答案有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“node模块相关的面试题及答案有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。热更新如何在不重启 n
2023-07-05

Node的文件系统有哪些内容

今天小编给大家分享一下Node的文件系统有哪些内容的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、Node的文件系统1、F
2023-06-29

crm客户管理系统的功能模块有哪些

CRM客户管理系统是一种集成化的客户关系管理软件,旨在帮助企业实现客户信息的集中管理和全面分析。它不仅可以提高企业的客户服务质量,还可以提升销售业绩和市场份额。CRM客户管理系统的主要功能模块包括:客户信息管理、销售管理、客户服务管理、市场营销管理、数据分析等。客户信息管理CRM客户管理系统可以记录客户的个人信息、购买
crm客户管理系统的功能模块有哪些
2024-01-14

国内ERP系统和SAP系统架构有哪些差异

国内ERP系统和SAP系统架构有哪些差异,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。系统构架是对已确定的需求的技术实现构架、作好规划,运用成套、完整的工具,在规划的步骤下
2023-06-05

tf.keras.layers模块中的函数有哪些

本文小编为大家详细介绍“tf.keras.layers模块中的函数有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“tf.keras.layers模块中的函数有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧
2023-07-05

Python中有哪些json模块函数

这篇文章将为大家详细讲解有关Python中有哪些json模块函数,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Python主要用来做什么Python主要应用于:1、Web开发;2、数据科学研
2023-06-14

python中vim模块有哪些函数接口

这篇文章将为大家详细讲解有关python中vim模块有哪些函数接口,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。python是什么意思Python是一种跨平台的、具有解释性、编译性、互动性和
2023-06-14

python中有哪些vim模块函数接口

python中有哪些vim模块函数接口?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。python是什么意思Python是一种跨平台的、具有解释性、编译性、互动性和面向对象的脚本
2023-06-14

Python时间数据类型的模块有哪些

这篇文章主要介绍“Python时间数据类型的模块有哪些”,在日常操作中,相信很多人在Python时间数据类型的模块有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python时间数据类型的模块有哪些”的疑
2023-06-02

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录