包简介
包实际上就是一个压缩文件,解压以后还原为目录。符合规范的目录应该有以下文件
- package.json 描述文件(json文件汇总不能写注释)
- bin 可执行二进制文件
- lib js代码
- doc 文档
- test 单元测试
nmp(Node Package Manager)简介
CommonJS包规范是理论,NPM是其中一种实践
对于Node而言,NPM帮助其完成了第三方模块的发布,安装和依赖等
命令:
- npm -v 查看自己的版本
- npm version 查看所有模块的版本
- npm search 包名 搜索相关包
- npm install 包名 下载包
- npm init 初始化创建一个包
- npm remove 包名 删除包
- npm install 包名 --save 下载这个包并将其添加到package.json的依赖中(最常用)
- npm install 下载当前项目所需要的依赖包
- npm install 包名@版本号 下载指定版本的包
cnmp淘宝镜像服务器配置
网址为:https://npm.taobao.org/
执行:npm i -g cnpm --registry=https://registry.npm.taobao.org
若想用淘宝镜像服务器下载包 就用cnpm install 包名
若想用原服务器(即国外的服务器) 就用npm…
通过npm下载的包直接通过包名引入即可
var math = require("math");
Buffer缓冲区
- Buffer的结构和数组很像,操作方法也和数组类似
- 数组中不能存二进制文件,而Buffer是专门用来存储二进制数据的(比如图片,音频,视频等在计算机中都是以二进制形式存在的)
- 使用Buffer不需要引入模块,可直接使用
- Buffer中存储的都是二进制数据,但以16进制形式显示
- Buffer中一个元素的大小范围是00-ff
将一个字符串保存在buffer中
var str = "Hello World";
var buf = Buffer.from(str);
创建一个指定大小的buffer
var buf = new Buffer(10); //不推荐使用Buffer的构造函数
var buf = Buffer.alloc(10); // 调用类方法alloc给buf申请大小为10个字节的空间
文件
Node使用fs模块对文件进行操作
首先引入
var fs = require("fs");
- 打开文件
- 写入内容
- 保存并关闭文件
同步写入
fs.openSync(path, flags[,mode]) 同步打开
- path 文件路径
- flags 操作类型
- r 只读
- w 可写
mode 设置文件的操作权限, 一般不写
有返回值
fs.writeSync(fd, string[, position[,encoding]]) 同步写入
- fd 文件的描述
- string 写入的内容
- position 写入的起始位置
- encoding 编码格式
var fd = fs.openSync("hello.txt", "w");
fs.writeSync(fd, "Hello World");
fs.close(fd); //要关闭
异步写入
无返回值
结果通过回调函数的参数返回
fs.open(..., callback);
fs.write(..., callback);
fs.open("hello.txt", "w", function(err,fd){
err为错误,没有错误则没有
fd
if(!err){
fs.write(fd, string, function(err,written,string){});
}
fs.close(fd,function(){});
});
简单文件写入
相当于对文件写入open,write的封装
fs.writeFile(path,data,option,callback);
fs.writeFileSync(path,data,option);
nodeApi:
http://nodejs.cn/api/