zoukankan      html  css  js  c++  java
  • 服务器环境的本地数据库

    const fs=require('fs-extra');
    const ShortName=require('./ShortName');
    const WashRoom=require('./WashRoom')
    //本地数据库
    class LocalStorage{
    constructor(tagDir) {
    this.dbDir=tagDir||__dirname+'/db/';
    fs.ensureDirSync(this.dbDir);
    this.shortName=new ShortName({
    tagDir:this.dbDir+'shortName/',
    })
    }
    async setItem(name,item){
    const id=await this.shortName.saveId(name);
    const wash=new WashRoom(id);
    await wash.wait();
    fs.writeFileSync(this.dbDir+id,item);
    wash.end();
    }
    async setData (name, data) {
    const item = typeof data === 'object' ? JSON.stringify(data) : data;
    await this.setItem(name,item);
    }
    async getData (name) {
    if (await this.hasData(name)) {
    const id=await this.shortName.getId(name);
    const item=fs.readFileSync(this.dbDir+id).toString()
    try {
    return JSON.parse(item);
    } catch (e) {
    // ..
    }
    return item;
    }
    }
    async hasData (name) {
    const id=await this.shortName.getId(name);
    if(id!==-1&&fs.existsSync(this.dbDir+id)){
    return true
    }
    return false;
    }
    async removeData (name) {
    const id=await this.shortName.getId(name);
    fs.unlinkSync(this.dbDir+id);
    }
    clearData () {
    fs.emptyDirSync(this.dbDir);
    fs.ensureDirSync(this.dbDir+'shortName/');
    }

    }
    module.exports=LocalStorage;
    const LocalStorage = require('./utils/LocalStorage');
    const localStorage=new LocalStorage(__dirname+'/localDb/');
    localStorage.setData('首页',{
    'logo':'png1',
    '标题':'我是淀粉酶'
    })
    localStorage.getData('首页').then(function (d) {
    console.log(d)
    })
  • 相关阅读:
    C++结构体内重载、this指针和友元函数(初步了解)
    数据结构—造树计划—二叉搜索树
    PTA顺序的分数
    PTA兼容任务
    PTA航船
    UML-基于GRASP对象设计步骤
    UML-设计对象时涉及的制品有哪些?
    UML-什么是用例实现(场景实现)?
    UML-如何使用GRASP进行对象设计?
    日志总结
  • 原文地址:https://www.cnblogs.com/caoke/p/11928512.html
Copyright © 2011-2022 走看看