目录结构
├─ 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"}