Buffer、核心API、npm
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分钟一次
npm install -g cnpm –registry=https//registry.npm.taobao.org
使用cnpm安装包: cnpm install 包名
nrm
作用:修改镜像源
安装:npm install -g 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的更多相关文章
- Nodejs进阶:核心模块Buffer常用API使用总结
本文摘录自<Nodejs学习笔记>,更多章节及更新,请访问 github主页地址.欢迎加群交流,群号 197339705. 模块概览 Buffer是node的核心模块,开发者可以利用它来处 ...
- 《Node.js高级编程》之Node 核心API基础
Node 核心API基础 第三章 加载模块 第四章 应用缓冲区 第五章 事件发射器模式简化事件绑定 第六章 使用定时器制定函数执行计划 第三章 加载模块 本章提要 加载模块 创建模块 使用node_m ...
- 支持GPS的核心API
Android为GPS功能支持专门提供了一个LocationManager类,它的作用于TelephonyManager.AudioManager等服务类的作用相似,所有GPS定位相关的服务.对象都将 ...
- hibernate系列笔记(2)---Hibernate的核心API
Hibernate的核心API 一般我们通过hibernate进行操作的时候,都会遵循下面的流程,那么接下来我对每一个步骤进行讲解: 1 public void testInsert() { 2 // ...
- APP自动化框架LazyAndroid使用手册(3)--核心API介绍
作者:黄书力 概述 在前一篇博文中,简要介绍了一款安卓UI自动化测试框架LazyAndroid (http://blog.csdn.net/kaka1121/article/details/53204 ...
- SDL 开发实战(二):SDL 2.0 核心 API 解析
在上一篇文章 SDL 开发实战(一):SDL介绍及开发环境配置 中,我们配置好了SDL的开发环境,并成功运行了SDL的Hello World 代码.但是可能大部分人还是读不太明白具体Hello Wol ...
- Spark2.0学习(三)--------核心API
Spark核心API----------------- [SparkContext] 连接到spark集群,入口点. [HadoopRDD] 读取hadoop上的数据, [MapPartitionsR ...
- hibernate框架(2)---Hibernate的核心API
Hibernate的核心API 一般我们通过hibernate进行操作的时候,都会遵循下面的流程,那么接下来我对每一个步骤进行讲解: 1 public void testInsert() { 2 // ...
- hibernate框架学习第二天:核心API、工具类、事务、查询、方言、主键生成策略等
核心API Configuration 描述的是一个封装所有配置信息的对象 1.加载hibernate.properties(非主流,早期) Configuration conf = new Conf ...
- Lucene系列六:Lucene搜索详解(Lucene搜索流程详解、搜索核心API详解、基本查询详解、QueryParser详解)
一.搜索流程详解 1. 先看一下Lucene的架构图 由图可知搜索的过程如下: 用户输入搜索的关键字.对关键字进行分词.根据分词结果去索引库里面找到对应的文章id.根据文章id找到对应的文章 2. L ...
随机推荐
- 【myBatis】Error evaluating expression ‘’. Return value () was not iterable.
被遍历的foreach不是数组或者集合
- scrapy-模块
爬虫模块:beautifulsoup4 scrapy_splash: pip install scrapy_splash scrapy_splash模块,与selenium类似,用来获取js渲染后的h ...
- Layui 必填验证
lay-verify="required"
- ABP 从core降到级.net framework
后台: Application层得先写接口 再写实现,不然 abp.services.app 这个里面就没有该service.并且service保留的接口,就是interface里面定义的接口. 文件 ...
- JS 常见问题
JavaScript 是一种有趣的语言,我们都喜欢它,因为它的性质.浏览器是JavaScript的主要运行的地方,两者在我们的服务中协同工作.JS有一些概念,人们往往会对它掉以轻心,有时可能会忽略不计 ...
- 某邀请赛misc key家用完整版
目录 题目下载 提示 解题过程 1.提取RGB值 2.找到key 3.循环异或,得到flag 反思 题目下载 题目名:key 提示 提取钥匙中特殊颜色的RGB循环异或KEY值 解题过程 1.提取RGB ...
- 【技术博客】使用PhpStorm和Xdebug实现Laravel工程的远程开发及调试
目录 使用PhpStorm和Xdebug实现Laravel工程的远程开发及调试 简介 PhpStorm中的远程开发 1. 配置服务器 2. 配置路径对应 3. 配置同步 4. 进行代码同步 5. 优点 ...
- 【技术博客】nginx服务器的https协议实现
在本学期软件工程的Alpha和Beta阶段,我们的服务器部署都是使用基础的http协议,http在网络路由间的信息转发都为明文,这对我们网站的账户密码登录来说很不安全,因此在Gamma阶段我们实现了h ...
- [技术博客] JS正则活学活用
正则基本语法 正则表达式(Regular Expression)是用单字符串来匹配一系列复合条件字符串的模式,对于乔姆斯基3型语法. 数学定义: 串行AB表示集合 {αβ | α ∈ A ,β ∈ B ...
- C#】通过遍历IFrame访问页面元素
最近在做一个小项目,期间需要用到C#去操作IE页面中的元素,实现自动填写表单并且提交的功能,想这网上关于这方面的东西肯定很多,于是开始在网上找资料. 在逆心的博客上找到些东西对自己帮助很大,原文链接: ...