首页 > 解决方案 > 如何在 React 项目中连接 LowDB?

问题描述

首先,我为我糟糕的英语水平道歉。我有一个关于 LowDB 的问题。我正在使用 React + Electron + LowDB 开发一些软件。但是当我尝试在我的项目中使用 LowDB 时,出现了问题。

lowDB.js

const low = require('lowdb');
const FileSync = require('lowdb/adapters/FileSync');
const adapter = new FileSync('db_data/db.json');
const db = low(adapter);

db.defaults({ data: [] }).write();

class DBHandler {
  constructor() {
    this.db = db;
  }

  insertStudyTime(saveDate, startTime, endTime, restTime) {

  }
}

export default DBHandler;

时间.js

import React, { Component } from 'react';
import { PropTypes } from 'prop-types';
import { confirmAlert } from 'react-confirm-alert';
import 'react-confirm-alert/src/react-confirm-alert.css';
/* lowDB Import */
import DBHandler from '../../lowDB/lowDB';

如上导入的 LowDB。

问题是我们可以看到在 cmd 中的节点上运行 lowDB 可以正常工作。

但是,lowdb 使用的 graceful-fs 库出现类型错误: TypeError:无法读取 fs.closeSync.toString() 上未定义的属性“toString”

这似乎是一个简单的问题。我认为我缺少一部分。即使我在查看每个流程的同时通过流程也很难找到答案,请参阅 LowDB 存储库的 README,

标签: databasereactjs

解决方案


纱线添加lowdb index.js:

import low from 'lowdb'
import LocalStorage from 'lowdb/adapters/LocalStorage'

const adapter = new LocalStorage('db')
const db = low(adapter)

const Home=(props)=>{
    db.defaults({ users: [], token:'' }).write()
    #init db, use db.defaults.

     then you can set db, and get db.
     db.get('users').push({ username: 'admin' }).write()  #set user's username
     db.set('token','you token').write()
     

     get:
     db.getState().user.username   =>'admin' 
     #or  db.get('user').find('username').value()
     db.getState().token    =>'you token'
}

推荐阅读