Skip to content

Latest commit

 

History

History
273 lines (181 loc) · 4.81 KB

README-CN.md

File metadata and controls

273 lines (181 loc) · 4.81 KB

key-cache

English documents

key的形式储存数据到文件内


code style fecs NPM Version NPM Downloads Linux Build Windows Build Test Coverage Dependencies

安装

依赖 node 4+

npm install key-cache --save

使用

// 创建一个引用
var KeyCache = require('key-cache');

// 实例化对象
var cache = new KeyCache(options);

// 这里就可以使用接口来操作了
cache.get('balbalbal');

默认参数

options.dir

数据缓存的目录,基于当前运行的目录

/**
 * @default key-cache安装目录的.cache目录
 * @type {String}
 */

options.timeout

缓存保存时间,单位,如果为空则永久保存

/**
 * @default null
 * @type {number|null}
 */

options.md5key

设置是否使用md5命名缓存文件名,为了路径的有效性,会过滤除了中文、字母、数字、-、_ 外的其他字符将被忽略,使用的正则是:/[^\u4e00-\u9fa5a-zA-Z\_\-0-9]/g.

/**
 * @default true
 * @type {Boolean}
 */

接口

set

写入数据到缓存文件内

/**
 * @param {string} key
 * @param {Object|string} value
 * @param {Object|undefined} options        如果有则会覆盖实例参数
 * @return {Object} this
 */
set(key, value, options = {})

get

从缓存文件内获取数据

/**
 * @param  {string} key
 *
 * @return {Object|string|null}             如果该数据不存在或者过期则返回null
 */
get(key)

remove

删除缓存数据和缓存文件

/**
 * @param  {string|undefined} key
 *
 * @return {Object}     this
 */
remove(key)

例子

简单

var cache = new KeyCache();

cache.set('name', 'key-cache');

console.log(cache.get('name'));

cache.remove('name');

console.log(cache.get('name')); // => null

自定义缓存目录

var cache = new KeyCache({
    dir: '../cache/'
});

cache.set('name', 'key-cache');

// 这里参数会覆盖上面配置dir
cache.set('name2', 'key-cache', {
    dir: './cache2'
});

设置过期时间

var cache = new KeyCache({
    timeout: 3
});

cache.set('name', 'key-cache');

// 这里参数会覆盖上面配置timeout
cache.set('age', 1, {
    timeout: 5
});

setTimeout(function(){
    console.log(cache.get('name')); // => null
    console.log(cache.get('age')); // => 1
}, 3000);

删除缓存

var cache = new KeyCache();

cache.set('name', 'key-cache');
cache.set('age', 1);

// 删除单个
cache.remove('name');

console.log(cache.get('name')); // => null
console.log(cache.get('age')); // => 1

// 删除全部
cache.remove();

console.log(cache.get('age')); // => null

md5key配置

配置不使用md5为缓存文件名

var cache = new KeyCache({
    md5key: false
});

cache.set('key', 'key-cache'); // => 文件名是 key.json
cache.set('age', 1); // => 文件名是 age.json
cache.set('this a space +-', 1); // => 文件名是 thisaspace-.json
cache.set('中文', 1); // => filename is 中文.json

参与开发

使用es6开发,依赖babel 6.x编译

// 运行编译,将es6代码从 src 编译到 lib 目录
npm run compile

// 监听文件改动并实时编译
npm run watch

// 使用fecs检查代码规范
npm run check

// 使用 mocha 运行测试用例
npm run test

// 运行测试用例和代码覆盖率
npm run test-cov

更新日志

1.0.0

添加 nodejs v8 测试环境

0.3.1

添加 .getAll() 方法

0.3.0

最低支持node 4.x+

0.2.9

修改api:fs.existsSync=>fs.statSync

0.2.8

添加nodejs6.x测试环境

0.2.7

更新测试用例为es6

0.2.6

升级为babel 6.x编译

0.2.3

0.2.1

修复当参数为function时返回值的类型,从undefined改成null~

0.2.0

添加options.md5key参数,用来配置是否使用md5方式命名缓存文件名

0.1.x

优化代码,添加测试用例

协议

MIT