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. 【myBatis】Error evaluating expression ‘’. Return value () was not iterable.

    被遍历的foreach不是数组或者集合

  2. scrapy-模块

    爬虫模块:beautifulsoup4 scrapy_splash: pip install scrapy_splash scrapy_splash模块,与selenium类似,用来获取js渲染后的h ...

  3. Layui 必填验证

    lay-verify="required"

  4. ABP 从core降到级.net framework

    后台: Application层得先写接口 再写实现,不然 abp.services.app 这个里面就没有该service.并且service保留的接口,就是interface里面定义的接口. 文件 ...

  5. JS 常见问题

    JavaScript 是一种有趣的语言,我们都喜欢它,因为它的性质.浏览器是JavaScript的主要运行的地方,两者在我们的服务中协同工作.JS有一些概念,人们往往会对它掉以轻心,有时可能会忽略不计 ...

  6. 某邀请赛misc key家用完整版

    目录 题目下载 提示 解题过程 1.提取RGB值 2.找到key 3.循环异或,得到flag 反思 题目下载 题目名:key 提示 提取钥匙中特殊颜色的RGB循环异或KEY值 解题过程 1.提取RGB ...

  7. 【技术博客】使用PhpStorm和Xdebug实现Laravel工程的远程开发及调试

    目录 使用PhpStorm和Xdebug实现Laravel工程的远程开发及调试 简介 PhpStorm中的远程开发 1. 配置服务器 2. 配置路径对应 3. 配置同步 4. 进行代码同步 5. 优点 ...

  8. 【技术博客】nginx服务器的https协议实现

    在本学期软件工程的Alpha和Beta阶段,我们的服务器部署都是使用基础的http协议,http在网络路由间的信息转发都为明文,这对我们网站的账户密码登录来说很不安全,因此在Gamma阶段我们实现了h ...

  9. [技术博客] JS正则活学活用

    正则基本语法 正则表达式(Regular Expression)是用单字符串来匹配一系列复合条件字符串的模式,对于乔姆斯基3型语法. 数学定义: 串行AB表示集合 {αβ | α ∈ A ,β ∈ B ...

  10. C#】通过遍历IFrame访问页面元素

    最近在做一个小项目,期间需要用到C#去操作IE页面中的元素,实现自动填写表单并且提交的功能,想这网上关于这方面的东西肯定很多,于是开始在网上找资料. 在逆心的博客上找到些东西对自己帮助很大,原文链接: ...