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"}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值