nodejs

模块调用的几种方式

nodejs 模块分三大类 自定义模块,第三方模块,核心模块

核心模块是用nodejs自带的模块组件,比如fs path http url buffer等

直接加载 const fs = require("fs") 或者 const fs = require("node:fs")

第三方模块 就是npm install 模块名 -g 全局安装后进行调用使用

const jsdom = require("jsdom")

自定义nodejs加载模块方式分2种

  1. 符合CommonJs规范

    CommonJs规范是用require导入,exports/moudle.exports导出

  2. 符合ESM规范

    ESM规范是用import导入,export/export default导出,

    • 同时js后缀名要用.mjs

    • 或者package.json中type值修改为module

      一般习惯使用这种,用在js当前路径使用npm init -y生成packjson文件,添加"type":"module",然后文件后缀改回js

系统模块

path

let path = require("path");

pth = "d:/test/abc/a.txt";
console.log(path.parse(pth)); pth3 = {
root: 'e:/',
dir: 'd:/test/abc',
base: 'a.txt',
ext: '.txt',
name: 'abc'
};
console.log(path.resolve(path.format(pth3)));
//主要讲2个方法parse和format, 2者是互斥,parse可以把一个路径拆分成root,dir,base,ext,name等属性
//format 可以把root,dir,base,ext,name等属性 拼接成一个完整路径. 其中root和dir是以dir优先,base和ext name是以base优先,这里的优先可以理解为互斥,2者都有只取优先的那个
//resolve和relative分别是获取绝对路径和相对路径,resolve如果传的是字符串而不是路径还可以根据当前脚本运行的路径去进行拼接 比如path.resolve("a","b","c.txt") 结果是D:\coding\PyCharm 2018.2.4\test\nodejs\demo1\a\b\c.txt

buffer模块

buffer是用来缓存二进制的数据的.是在内存中的一个缓存区

导入方式const {Buffer} = require("buffer")

Buffer是一个全局变量,因此不导入也可以直接使用

比如console.log(Buffer.alloc(7,15))

console.log(Buffer.alloc(10,"你好"));

alloc方法

alloc 两个参数 第一个参数是指定buffer长度, 参数2是指定值填充buffer,16进制.

Buffer.alloc(10,"你好") 以中文举例,一个中文占3个位,因此指定的长度大于需要的位数.这种情况会重复把6位的中文进行占位.填满

而指定位数少于需要的位数,则会截取相应的位数作为存放长度.

from方法

Buffer.from("你好的就挨打")可以自动指定对应的buffer长度,并用16进制显示,from不能单独接受数字,如果是数字需要用数组进行输入, from只能接受一个参数,参数必须是字符串,数组,buffer对象

fill() 用指定值对buffer进行填充 3个参数 要填充的值 下标索引位置, 决定从哪个位置开始填充 下标索引位置, 决定从填充到哪个位置

write() 将指定值写入到buffer中 3个参数 要填充的值 下标索引位置, 决定从哪个位置开始填充 决定填充长度

toString() 用buffer解析成字符串 3个参数 使用的字符编码 开始解码的字符偏移量

subarray() 从原buffer截取一段返回新的buffer 2个参数 开始截取的位置 到哪个位置结束

indexOf() 返回检索内容第一次出现的位置索引

nodejs基础知识点的更多相关文章

  1. fastclick 源码注解及一些基础知识点

    在移动端,网页上的点击穿透问题导致了非常糟糕的用户体验.那么该如何解决这个问题呢? 问题产生的原因 移动端浏览器的点击事件存在300ms的延迟执行,这个延迟是由于移动端需要通过在这个时间段用户是否两次 ...

  2. .NET基础知识点

    .NET基础知识点   l  .Net平台  .Net FrameWork框架   l  .Net FrameWork框架提供了一个稳定的运行环境,:来保障我们.Net平台正常的运转   l  两种交 ...

  3. [转]Nodejs基础中间件Connect

    Nodejs基础中间件Connect 从零开始nodejs系列文章,将介绍如何利Javascript做为服务端脚本,通过Nodejs框架web开发.Nodejs框架是基于V8的引擎,是目前速度最快的J ...

  4. Nodejs基础中间件

    Nodejs基础中间件Connect   http://www.tuicool.com/articles/emeuie 关于作者 张丹(Conan), 程序员Java,R,PHP,Javascript ...

  5. JavaScript 开发者经常忽略或误用的七个基础知识点(转)

    JavaScript 本身可以算是一门简单的语言,但我们也不断用智慧和灵活的模式来改进它.昨天我们将这些模式应用到了 JavaScript 框架中,今天这些框架又驱动了我们的 Web 应用程序.很多新 ...

  6. JavaScript 开发者经常忽略或误用的七个基础知识点

    JavaScript 本身可以算是一门简单的语言,但我们也不断用智慧和灵活的模式来改进它.昨天我们将这些模式应用到了 JavaScript 框架中,今天这些框架又驱动了我们的 Web 应用程序.很多新 ...

  7. JavaScript开发者常忽略或误用的七个基础知识点

    JavaScript 本身可以算是一门简单的语言,但我们也不断用智慧和灵活的模式来改进它.昨天我们将这些模式应用到了 JavaScript 框架中,今天这些框架又驱动了我们的 Web 应用程序.很多新 ...

  8. js基础知识点(只有点)

    转自:2015年12月的文章 http://blog.csdn.net/u014326381/article/details/50176339 JavaScript: 作用域链.闭包.运行时上下文.t ...

  9. JavaScript语言基础知识点图示(转)

    一位牛人归纳的JavaScript 语言基础知识点图示. 1.JavaScript 数据类型 2.JavaScript 变量 3.Javascript 运算符 4.JavaScript 数组 5.Ja ...

  10. JavaScript 语言基础知识点总结

    网上找到的一份JavaScript 语言基础知识点总结,还不错,挺全面的. (来自:http://t.cn/zjbXMmi @刘巍峰 分享 )  

随机推荐

  1. [OpenCV实战]2 人脸识别算法对比

    在本教程中,我们将讨论各种人脸检测方法,并对各种方法进行比较.下面是主要的人脸检测方法: 1 OpenCV中的Haar Cascade人脸分类器: 2 OpenCV中的深度学习人脸分类器: 3 Dli ...

  2. [python] 基于diagrams库绘制系统架构图

    Python的Diagrams库允许通过简单的Python代码绘制云系统架构,实现对新的系统架构进行原型设计.Diagrams的官方仓库地址见:diagrams.Diagrams的官方文档和使用示例见 ...

  3. Redis-01 常用命令

    创建和获取 key 命令 说明 例子 set 创建一个名为 key 值为 value 键值对 set views 10 get 获取名为 key 的值,存在返回值,不存在返回 nil get view ...

  4. RESTful相关信息整理

    RESTful相关信息整理 参考:可以看的出来我是阮一峰的忠实读者 阮一峰的<理解RESTful架构> https://www.ruanyifeng.com/blog/2011/09/re ...

  5. 插入排序(CSP-J 2021 T2)

    题目:(由于题干过长直接上链接:P7910 [CSP-J 2021] 插入排序 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)) 不是打广告 又有一个新思路: 我们可以再开一个b数组 ...

  6. C-02\规范及随机数rand()原理

    小知识点 assert()函数 assert 断言函数,用于在调试过程中捕捉程序的错误.对某种假设条件进行检测,如果条件成立就不进行任何操作,如果条件不成立就捕捉到这种错误,并打印出错误信息,终止程序 ...

  7. Vue09 事件

    1 事件语法 Vue 中的事件绑定可以使用 v-on 指令进行处理,可以把 v-on 绑定事件简写为 @. <div id="root"> <button @cl ...

  8. win10使用python自动化安装mysql8.0.11

    流程概要 下载mysql-8.0.11-winx64压缩包 解压 编辑配置文件my.ini 管理员权限cmd安装(注意初始化时设置默认密码为空) pymysql连接,执行sql操作. 代码实现 依赖: ...

  9. C++_bind用法

    1.bind函数 网络编程中, 经常要使用到回调函数. 当底层的网络框架有数据过来时,往往通过回调函数来通知业务层. 这样可以使网络层只专注于 数据的收发, 而不必关心业务 在c语言中, 回调函数的实 ...

  10. STM32F0_HAL初始化系列:输入捕捉

    1.使用的TIM1,配置如下: 2.代码: int main(void) { HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); MX_TIM1_Ini ...