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. day13-功能实现12

    家居网购项目实现012 以下皆为部分代码,详见 https://github.com/liyuelian/furniture_mall.git 29.功能27-Ajax检验注册名 29.1需求分析/图 ...

  2. [编程基础] Python数据生成库Faker总结

    Python Faker教程展示了如何使用Faker软件包在Python中生成伪数据.我们使用joke2k/faker包. 1 介绍 Faker是一个生成假数据的Python库.伪数据通常用于测试或用 ...

  3. C++ 使用 new 创建二维数组

    1. 直接创建 C++ 使用 new 创建二维数组最直接的方法就是 new T[M][N].返回的指针类型是 T (*)[N],它是指向数组的指针,可以直接使用数组下标形式访问元素.释放内存直接使用d ...

  4. C#动态创建对象过程

    创建对象环境 获取当前应用程序集引用的类库详细信息,动态类也将调用此类库 obj类为项目动态编译时用到的模版类,主要提取其using信息用于动态生成的类使用     1 AssemblyName[]r ...

  5. Caddy-用Go写的新一代可扩展WebServer

    前几天用 Netmaker 的时候发现它用 Caddy 替换掉了 Nginx,用了后发现确实简单好用,就安利一下. Caddy 是一个强大的.可扩展的平台,用 Go 编写,可以为你的站点.服务和应用程 ...

  6. Blazor如何实现类似于微信的Tab切换?

    是否有小伙伴在使用tab的时候想进行滑动切换Tab? 并且有滑动左出左进,右出右进的效果 ,本文将讲解怎么在Blazor中去通过滑动切换Tab 本文中的UI组件使用的是MASA Blazor,您也可以 ...

  7. maven依赖管理,生命周期,插件

    依赖配置 依赖指当前项目运行所需的jar,一个项目可以设置多个依赖,在pom.xml中格式如下 <!--设置当前项目所依赖的所有jar--> <dependencies> &l ...

  8. 流程概述与顺序结构-选择结构_单if语句

    流程概述与顺序结构 概述 在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的.也就是说,程序的流程对运行结果 有直接的影响.所以,我们必须清楚每条语句的执行流程.而且,很多时候我们要 ...

  9. Linux密钥认证

    网站集群批量管理-秘钥认证 一.概述 管理更加轻松:两个节点,通过秘钥形式进行访问,不需要输入密码,单向 应用场景: 一些服务在使用前要求做秘钥认证 手动写批量管理脚本 名字:秘钥认证,免密码登录,双 ...

  10. 843. n-皇后问题

    题目: 这 道 题 呢 唯 一 一 点 与 其 他 题 目 不 同 之 处 就 是 它 有 有 3 个 v i s 数 组 以及是一行一行深搜的. 主要思路为: 从第一行 到第n行,一行放一个,这一行 ...