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. python基础之六:编码简介以及python3中的编码

    1.常见的四种编码方式的编码过程: ascii A : 00000010 8位 一个字节 unicode A : 00000000 00000001 00000010 00000100 32位 四个字 ...

  2. python基础之四:list、tuple

    一.列表 list # 列表 ''' 类似str,可以进行切片 ''' li = [', [1, 2, 3], 55, 'we all in ', 'Tom', ''] print(li[0:2]) ...

  3. 分享:手把手教你如何免费且光荣地使用正版IntelliJ IDEA

    https://mp.weixin.qq.com/s/6nRYmn6gAWFLg3mUIN_ojg TIPS 近日在个人技术讨论QQ群里,谈论到IDEA的那些事儿.有童鞋居然在某电商网站花钱买激活码. ...

  4. [冬令营Day1 T2]sequence

    题目描述 Description 给一个长度为N的序列以及Q的询问,每次两个参数l,r,问你序列[l,r]中的最大连续和 输入描述 Input Description 一行二个正整数N,Q. 接下来一 ...

  5. Super Fish

        Super fish is a common fun and leisure game. It's a game that tests your intelligence and memory ...

  6. ESA2GJK1DH1K基础篇: 来吧! 彻底了解一下MQTT

    首先你需要知道MQTT并不是什么高大上的事物,它只是一个软件,对就是一个软件.其实就是个TCP服务器 一,既然是TCP服务器,这个TCP服务器和咱平时做的有什么不一样呢. 首先,平时的时候咱做的TCP ...

  7. suse12.2构建samba

    1:添加用户 useradd wangjunhui -d /home/wangjunhuipasswd wangjunhui 2:配置samba smbpasswd -a wangjunhui vi ...

  8. 在WIN7操作系统下,如何显示文件夹里文件的数目

    在文件夹的“查看”选项中选择“状态栏”,那么在任务栏中可以显示windows7系统中文件夹中文件的数目.具体操作请参照以下步骤. 1.首先开启电脑,在电脑中进入到任意一个文件夹中. 2.然后在文件夹界 ...

  9. 【计算机视觉】BRIEF特征匹配

    Binary Robust Independent Elementary Features www.cnblogs.com/ronny 1. BRIEF的基本原理 我们已经知道SIFT特征采用了128 ...

  10. 屏蔽打开文件时提示“您尝试打开的文件xxx.xls的格式与文件扩展名指定的格式不一致。打开文件前请验证文件没有损坏且来源可信。是否立即打开该文 件?”

    修改注册表解决 1.打开注册表编辑器 方法:开始 -> 运行 -> 输入regedit -> 确定 2.找到注册表子项 HKEY_CURRENT_USER\Software\Micr ...