轻呈云工具集提供了Node.JS的基础常见工具,方便构建应用。
安装
要求 Node.JS v7.6.0 以上。
npm install @sumor/utils --save
引入方式
const utils = require("@sumor/utils");
简单案例
const utils = require("@sumor/utils");
const uuid = utils.basic.uuid();
console.log(uuid);
基础工具集 basic
uuid
生成通用唯一识别码
const uuid = utils.basic.uuid();
console.log("uuid:",uuid);
md5
MD5消息摘要算法
const md5 = utils.basic.md5("test");
console.log("md5:",md5);
getTimestamp
获取时间戳
时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总毫秒数。
const timestamp = utils.basic.getTimestamp();
console.log("timestamp:",timestamp);
delay 【异步方法】
延迟事件,将暂停程序执行一段时间,仅供测试使用。
console.log("延迟前");
await utils.basic.delay(1000);
console.log("延迟后");
formatTime
格式化日期时间,支持不同时区,支持数字格式时间戳和JS Date对象,时区目前仅支持分钟差,不传则使用服务器时区。
utils.basic.formatTime(时间戳,格式[,时区])
const timeForUTC0 = utils.basic.formatTime(timestamp,'yyyy年MM月dd日 hh:mm:ss 星期W');
console.log(`当前英国时间:${timeForUTC0}`);
const timeForUTC8 = utils.basic.formatTime(new Date(),'yyyy年MM月dd日 hh:mm:ss 星期W',8*60);
console.log(`当前北京时间:${timeForUTC8}`);
qrcode 【异步方法】
生成二维码
const qrcode = await utils.basic.qrcode("你好,世界");
console.log("您可拷贝以下黏贴到浏览器地址栏查看二维码");
console.log(qrcode+"\n");
toCamelCase
转驼峰写法
utils.basic.toCamelCase(待转文本[,分隔符,是否为小写驼峰])
const upper1 = utils.basic.toCamelCase("say-hello");
const lower1 = utils.basic.toCamelCase("say_hello","_",true);
fromCamelCase
驼峰写法转单词切分
utils.basic.fromCamelCase(待转文本[,分隔符])
const upper2 = utils.basic.fromCamelCase("SayHello");
const lower2 = utils.basic.fromCamelCase("sayHello","_");
trigger
生成触发程序
const fn = utils.basic.trigger(程序);
let num = 0;
const fn = utils.basic.trigger(async()=>{
num+=1;
await utils.basic.delay(2000);
console.log(num);
});
fn();fn();fn();
setTimeout(()=>{
fn();
},10000);
文件工具集 file
normalize
格式化路径
const normalizePath = utils.file.normalize("C:/level1/level2/../hello.txt");
console.log(normalizePath);
download 【异步方法】
下载文件
await utils.file.download("https://www.baidu.com",__dirname+"/baidu.html");
find 【异步方法】
寻找文件
const fileList = await utils.file.find("*",{cwd:__dirname,ignore:"**/node_modules/**"});
console.log(fileList);
zip & unzip 【异步方法】
压缩及解压ZIP文件
const testFolder = __dirname+"/../dist/test";
const demoFolder = __dirname+"/../dist/test/demo";
await utils.file.ensureDir(demoFolder);
await utils.file.writeFile(demoFolder+"/zip.txt","hello zip");
await utils.file.writeFile(demoFolder+"/config.json","{}");
await utils.file.zip(demoFolder,__dirname+"/../dist/test/demo.zip",["*.json*"]);
await utils.file.unzip(__dirname+"/../dist/test/demo.zip",testFolder+"/demoUnzip");
exist 【异步方法】
检查是否存在文件夹或目录
const existFlag = await utils.file.exist(demoFolder);
console.log("existFlag:",existFlag);
isDirectory 【异步方法】
检查路径是否为目录
const isDirectory = await utils.file.isDirectory(demoFolder);
console.log("isDirectory:",isDirectory);
move 【异步方法】
移动文件或目录,也可用于改名
await utils.file.move(__dirname+"/demo.zip",__dirname+"/move/demo_rename.zip");
delete 【异步方法】
删除目录或文件
await utils.file.move(__dirname+"/demo.zip");
ensureFile 【异步方法】
确保文件存在,如不存在则创建
await utils.file.ensureFile(__dirname+"/demo.zip");
ensureDir 【异步方法】
确保目录存在,如不存在则创建
await utils.file.ensureDir(__dirname+"/demo");
copy 【异步方法】
复制目录或文件
await utils.file.copy(__dirname+"/demo",__dirname+"/demo_copy");
writeFile 【异步方法】
写入文件
await utils.file.writeFile(__dirname+"/demo.txt","test");
appendFile 【异步方法】
尾部追加写入文件
await utils.file.appendFile(__dirname+"/demo.txt","test");
readFile 【异步方法】
读取文件,如果不存在则返回undefined
参数2为编码格式,不输入为返回buffer
const fileData = await utils.file.readFile(__dirname+"/demo.txt","utf-8");
console.log(fileData);
readJson 【异步方法】
读取JSON
const jsonData = await utils.file.readJson(__dirname+"/demo.txt");
console.log(jsonData);
getExt 【异步方法】
获取后缀名
const extData = await utils.file.getExt(__dirname+"/demo.txt");
console.log(extData);