Buffer基本操作

Buffer对象是Node处理二进制数据的一个接口。它是Node原生提供的全局对象,可以直接使用,不需要require(‘buffer’)。

  • 实例化

    • Buffer.from(array)

    • Buffer.from(string)

    • Buffer.alloc(size)

  • 功能方法

    • Buffer.isEncoding() 判断是否支持该编码

    • Buffer.isBuffer() 判断是否为Buffer

    • Buffer.byteLength() 返回指定编码的字节长度,默认utf8

    • Buffer.concat() 将一组Buffer对象合并为一个Buffer对象

  • 实例方法

    • write() 向buffer对象中写入内容

    • slice() 截取新的buffer对象

    • toString() 把buf对象转成字符串

    • toJson() 把buf对象转成json形式的字符串

 

 核心模块API

  路径操作

    • 路径基本操作API(url)

  文件操作

    • 文件信息获取

    • 读文件操作

    • 写文件操作

    • 目录操作

  文件操作案例

  

  app.js代码

/**
* node webServer
*
*/ // 引入文件
const http = require('http'); //http 模块
const fs = require('fs'); //fs 文件操作模块
const url = require('url'); //url url地址模块 // 操作
http.createServer((req, res) => {
// 设置 setHeader
// res.setHeader('content-type', 'text/html;charset=utf-8');
if (req.url == '/') {
// 先独取文件内容
let html = fs.readFileSync('./view/index.html', 'utf8')
// 响应内容
res.end(html);
} else if (req.url == '/create') {
let html = fs.readFileSync('./view/create.html', 'utf8')
// 响应内容
res.end(html);
} else if (req.url == '/bootstrap.css') {
let css = fs.readFileSync('./view/bootstrap.css', 'utf8')
// 响应内容
res.end(css);
} else {
let html = fs.readFileSync('./view/404.html', 'utf8')
res.end(html)
}
}).listen(3000, () => {
console.log('启动成功,访问地址:http://127.0.0.1:3000');
})

多个模块可以形成包,不过要满足特定的规则才能形成规范的包

NPM (node.js package management)

全球最大的模块生态系统,里面所有的模块都是开源免费的;也是Node.js的包管理工具。

npm包安装方式

  • 本地安装

    • npm i 包名 --save-dev
  • 全局安装

    • npm i 包名 -g

解决npm安装包被墙的问题

  • --registry

    • npm config set registry=https//registry.npm.taobao.org

  • cnpm

    • 淘宝NPM镜像,与官方NPM的同步频率目前为10分钟一次

    • 官网: http://npm.taobao.org/

    • npm install -g cnpm –registry=https//registry.npm.taobao.org

    • 使用cnpm安装包: cnpm install 包名

  • nrm

npm常用命令

  • 安装包

    • npm i 包名
  • 更新包

    • npm update
  • 卸载包

    • npm uninstall 包名

yarn基本使用

  • 类比npm基本使用

自定义包

包的规范

  • package.json必须在包的顶层目录下

  • 二进制文件应该在bin目录下

  • JavaScript代码应该在lib目录下

  • 文档应该在doc目录下

  • 单元测试应该在test目录下

package.json字段分析

  • name:包的名称,必须是唯一的,由小写英文字母、数字和下划线组成,不能包含空格

  • description:包的简要说明

  • version:符合语义化版本识别规范的版本字符串

  • keywords:关键字数组,通常用于搜索

  • maintainers:维护者数组,每个元素要包含name、email(可选)、web(可选)字段

  • contributors:贡献者数组,格式与maintainers相同。包的作者应该是贡献者数组的第一- 个元素

  • bugs:提交bug的地址,可以是网站或者电子邮件地址

  • licenses:许可证数组,每个元素要包含type(许可证名称)和url(链接到许可证文本的- 地址)字段

  • repositories:仓库托管地址数组,每个元素要包含type(仓库类型,如git)、url(仓- 库的地址)和path(相对于仓库的路径,可选)字段

  • dependencies:生产环境包的依赖,一个关联数组,由包的名称和版本号组成

  • devDependencies:开发环境包的依赖,一个关联数组,由包的名称和版本号组成

自定义包案例

  模块:在node中就是一个文件

  包:N个模块、目录、package.json等组成,然后发布,让别人require

  需 求:发布formatTime包

    • 步骤1:打开npmjs.com注册账号

    • 步骤2:创建dev开发目录 -> 初始化 -> 修改package.json文件

    步骤3:本地登录提交(切记提交自己的包必须切换到国外服务器,下载在切换过来)

      npm login
      npm publish

    步骤4:测试(创建test开发目录,执行命令npm install webopenfather-format-time)

特此声明:如需转载请注明出处,如有疑问请及时提出以便于改正,如有侵权,联系删除,谢谢

Buffer、核心API、npm的更多相关文章

  1. Nodejs进阶:核心模块Buffer常用API使用总结

    本文摘录自<Nodejs学习笔记>,更多章节及更新,请访问 github主页地址.欢迎加群交流,群号 197339705. 模块概览 Buffer是node的核心模块,开发者可以利用它来处 ...

  2. 《Node.js高级编程》之Node 核心API基础

    Node 核心API基础 第三章 加载模块 第四章 应用缓冲区 第五章 事件发射器模式简化事件绑定 第六章 使用定时器制定函数执行计划 第三章 加载模块 本章提要 加载模块 创建模块 使用node_m ...

  3. 支持GPS的核心API

    Android为GPS功能支持专门提供了一个LocationManager类,它的作用于TelephonyManager.AudioManager等服务类的作用相似,所有GPS定位相关的服务.对象都将 ...

  4. hibernate系列笔记(2)---Hibernate的核心API

    Hibernate的核心API 一般我们通过hibernate进行操作的时候,都会遵循下面的流程,那么接下来我对每一个步骤进行讲解: 1 public void testInsert() { 2 // ...

  5. APP自动化框架LazyAndroid使用手册(3)--核心API介绍

    作者:黄书力 概述 在前一篇博文中,简要介绍了一款安卓UI自动化测试框架LazyAndroid (http://blog.csdn.net/kaka1121/article/details/53204 ...

  6. SDL 开发实战(二):SDL 2.0 核心 API 解析

    在上一篇文章 SDL 开发实战(一):SDL介绍及开发环境配置 中,我们配置好了SDL的开发环境,并成功运行了SDL的Hello World 代码.但是可能大部分人还是读不太明白具体Hello Wol ...

  7. Spark2.0学习(三)--------核心API

    Spark核心API----------------- [SparkContext] 连接到spark集群,入口点. [HadoopRDD] 读取hadoop上的数据, [MapPartitionsR ...

  8. hibernate框架(2)---Hibernate的核心API

    Hibernate的核心API 一般我们通过hibernate进行操作的时候,都会遵循下面的流程,那么接下来我对每一个步骤进行讲解: 1 public void testInsert() { 2 // ...

  9. hibernate框架学习第二天:核心API、工具类、事务、查询、方言、主键生成策略等

    核心API Configuration 描述的是一个封装所有配置信息的对象 1.加载hibernate.properties(非主流,早期) Configuration conf = new Conf ...

  10. Lucene系列六:Lucene搜索详解(Lucene搜索流程详解、搜索核心API详解、基本查询详解、QueryParser详解)

    一.搜索流程详解 1. 先看一下Lucene的架构图 由图可知搜索的过程如下: 用户输入搜索的关键字.对关键字进行分词.根据分词结果去索引库里面找到对应的文章id.根据文章id找到对应的文章 2. L ...

随机推荐

  1. 微信H5页面分享获取JS-SDK

    https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115  微信开发文档: 生成签名之前必须先了解一下jsapi_ti ...

  2. zzulioj - 2624: 小H的奇怪加法

    题目链接:http://acm.zzuli.edu.cn/problem.php?id=2624 题目描述 小H非常喜欢研究算法,尤其是各种加法.没错加法包含很多种,例如二进制中的全加,半加等.全加: ...

  3. UEditor在开发环境中正常运作,但是部署到Tomcat中却无法使用

    背景 ​ SpringBoot项目,在 JSP 中使用 UEditor 问题 ​ UEditor 在开发环境中正常运作,但是导致部署到 Tomcat 中却无法使用 原因 在开发环境中,路径不够严谨,多 ...

  4. 抓住九月的尾巴分享一个插件XLSX

    git官网 安装: cnpm install --save xlsx file-saver .vue文件中:1. 引用table插件/自己写table布局 <el-table id=" ...

  5. 在Linux上使用mssql-conf工具配置SQL Server 2017

    mssql-conf是在Linux上安装SQL Server 2017后的一个配置脚本.你可以使用这个实用工具设置以下参数: Agent 启用SQL Server代理 Collation 设置一个新的 ...

  6. 【Gamma阶段】第十次Scrum Meeting

    [Gamma阶段]第十次Scrum Meeting 每日任务内容 今日工作任务 明日待完成任务 完成人 准备测试质量保证的展示材料 准备测试展示视频 赵智源 修复热评的子评论BUG 准备前端技术展示材 ...

  7. elasticsearch 常用命令 一直红色 重启不稳定 不停的宕机

    persistent (重启后设置也会存在) or transient (整个集群重启后会消失的设置). 查看集群状态和每个indices状态.搜索到red的,没用就删除 GET /_cluster/ ...

  8. how to write your first linux device driver

    how to write your first linux device driver 0. environment-ubuntu 1804 64bit 1. apt-get install linu ...

  9. Qt相关博客总览

    一.Qt快速入门 Qt快速入门之一:开始学习Qt 与Qt Creator Qt快速入门之二:Qt Creator简介 Qt快速入门之三:Qt程序编译和源码详解 Qt对话框之一:标准对话框 二.Qt窗口 ...

  10. cad.net 在位编辑的原理猜测及找到在位编辑状态的图元

    在位编辑的时候会产生一个名为 0-RefEdit0 的图层,原因不明.... 在位编辑的本质是一个长事务,长事务是使用编辑库的对象替换源对象,相当于剪辑.不理解没关系,请看下面的聊天记录.... [贵 ...