将文件系统作为数据库的体验如何?

2021-06-16 17:00:18 浏览数 (1)

清理仓库,最近将自己Github上2/3的项目都删了,我们来看看其中一个仓库。

曾经写了一个web app,后端没有用数据库,而是文件系统,体验还不错,文件系统的索引也很快,有时候一个网站不需要什么SQL。

CSV with ag-grid & chart.js

功能概述

基于web的表格处理/图形渲染系统, 支持csv文件的导入导出, ag-grid的本地scrud, 以及chart.js框架的图表统计

CSV规范格式

能够读取的CSV格式必须符合通用标准,比如首行必须是表头,第二行开始是数据,可以有跨行单元格(系统会向上寻找到存在的元素并拷贝),系统自动识别数值类型并转化,但并不识别数值列.

网盘系统

本系统没有数据库, 没有数据库, 数据库! 通过在/public/file/目录下存储所有用户需要的csv文件,不支持目录.不得不说很多情况,尤其是web app的系统中文件系统要比DB好的多, 也方便的多,所以本应用是弱后端的.

前后端模块一览

  • ag-grid(enterprise): 不用说了, 所见过最强大, 最良心, 文档最完善的网格框架
  • chart.js: 一种轻量级的统计图框架, 支持八种图表
  • CryptoJS: js加密库, 主要用于用户pwd的sha1加密, 客户端调用, 不知道怎么在node端共用
  • fontawesome_pro: 从官网扒下来的pro版本(5.3?),不得不说他们防扣码的手段挺强
  • PapaParse: CSV2JSON的一个小工具
  • browser-detect: 浏览器/OS嗅探工具,用于全面封杀IE
  • body-parser: 非常经典的http body解析中间件,别没事用各种node模块,多研究研究标准库和http!!
  • ejs: html模板引擎
  • express: 经典web框架
  • express-session: 经典的express session框架(支持三种存储(内存, 文件, 数据库(各种数据库)))
  • session-file-store: 用于express-session的文件存储(千万别存在内存中)
  • path: 有时候路径拼接任务多了,斜杠就不知道怎么摆放了,干脆上框架..

绘图逻辑

每个一级group node制作一张线形图(贝塞尔曲线),如果它有二级group node(children),则作为图中的的多个曲线; 如果没有,则将自身作为唯一的曲线

主菜单一览

  • import: 将本地csv文件导入到浏览器中进行计算和渲染
  • upload: 上传本地csv文件备份到服务器的文件系统
  • server: 打开服务器文件系统
  • export: 将浏览器中编辑后的新表格导出为csv文件
  • charts: toggle图表界面
  • logout: 登出

登录

访问192.168.0.1:81 用户名和密码都是'root' 然后进入主界面, 表格功能和Excel类似, 请自行探索:)

这个项目曾经用到的图片素材:

0 人点赞