nodejs数据持久化--文件系统

目录结构

├─ config
│  ├─ db.json
│  └─ index.js

引入依赖包

// 实现一个文件系统读写数据库
const fs = require('fs')
const path = require('path')

设置文件名

// 文件名
const jsonFile = path.resolve(__dirname, './db.json')

读数据方法

// 读数据
function get(key) {
  fs.readFile(jsonFile, (err, data) => {
    const json = data ? JSON.parse(data) : {}
    console.log(json[key])
  })
}

写数据方法

// 写数据,文件不存在自动创建
function set(key, value = '') {
  fs.readFile(jsonFile, (err, data) => {
    const json = data ? JSON.parse(data) : {}
    json[key] = value
    fs.writeFile(jsonFile, JSON.stringify(json), err => {
      console.log('写入成功')
    } )
  })
}

方法调用

get('key1')
set('key2', 'value2')

命令行执行

// 命令行执行
const readline = require('readline')

// 创建命令行实例
const rl = readline.createInterface({
  input: process.stdin
})

// 监听命令行
rl.on('line', function (input) {
  // 字符串分割,根据空格
  const [op, key, value] = input.trim().split(/\s+/)
  // 读文件命令
  if (op === 'get') {
    get(key)
  // 写文件命令
  } else if (op === 'set') {
    set(key, value)
  // 结束操作
  } else if (op === 'quit') {
    rl.close()
  // 无效操作
  } else {
    console.log('没有操作')
  }
})

// 结束命令
rl.on('close', function () {
  console.log('程序结束')
  // 退出命令行
  process.exit(0)
})

命令行

$ node fs/index.js
get key1
value1
set gffggf 121112
写入成功
quit
程序结束

db.json文件

{"key1":"value1","key2":"value2","abc":"54654","gffggf":"121112"}

版权声明:本文为qq_21976063原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。