Javascript

node.js——包和文件

本文主要是介绍node.js——包和文件,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

包简介

包实际上就是一个压缩文件,解压以后还原为目录。符合规范的目录应该有以下文件

  • 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");
  1. 打开文件
  2. 写入内容
  3. 保存并关闭文件

同步写入

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/
这篇关于node.js——包和文件的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!