2017-03-04 77 views
0

我是来自Flex/Actionscript世界的难民,我正在使用Electron作为运行时引擎将大型旧式Flex应用程序“移植”到Javascript中(基本上是重写)。我一边学习一边进行小型测试,以探索各种JavaScript库和框架的功能和适用性。Electron桌面应用程序的资产数据库?

这是一个使用本地文件(例如Powerpoint,Keynote,iTunes类型的应用程序)的“演示文稿”类型的桌面应用程序,我需要让用户导入,标记和组织许多图像和视频资产。我需要能够移动/复制资产,处理重复的文件名,为每个文件创建数据库记录,创建文件分组等,然后当然可以在运行时访问所有这些文件。

虽然从头开始编写这将会很有趣,但这将是很多工作,并且我想到可能有一个现有的库或CMS框架可以适应这一点。这个想法是否被误导?是否有这种类型的需求的现有解决方案?

+0

您是否尝试过的NodeJS文件系统? https://nodejs.org/api/fs.html还是fs-extra? – Philip

+0

@菲利普 - 感谢,是的,我已经使用了它,它肯定需要成为我最终的一部分。我想我正在寻找一些与UI前端相关的东西 - 树视图,文件预览等等,但是在环顾了很多项目之后,大多数人都被绑定到了PHP中,或者以其他方式纠缠在一起,它会比它更麻烦值得尝试适应某些与本地文件一起工作。可能最终会使用fs,pouchdb并从头开始编写它。 –

回答

2

我与有关文件操作和数据库中记录的相同需求的项目工作,所以让我给你一些提示:

  • 使用小规模的数据库(性LevelDB,nedb,lovefield),因为你会需要将其打包到应用程序中。

  • 不要直接从渲染器进程调用fs模块,总是使用ipc(用于解耦原因)。

  • 结构中的应用程序通过分离主(电子为主,节点模块等)的文件和渲染器(视图,客户端的js,图片...)文件

  • 你需要一个第三方模块对于文件和目录,以确保一切运行顺利,我使用mkdirp来确保该目录存在,您也可以使用fs-extra,这对于处理两者都很好(fs不喜欢不存在的位置)。

  • 如果文件大小大,使用流动资产,createReadStreamcreateWriteStream应该是用来读取&写文件的唯一方法。

  • 如果你需要看一些目录,使用chokidar,它比fs.watch方法更有效率。

  • 为viewpart使用框架,取决于您熟悉的内容,但angluar,react,vuejs将是一个不错的选择。

最后检查此链接,它会帮助你得到的东西的概述,你可以使用 https://github.com/sindresorhus/awesome-electron

希望它可以帮助

+0

谢谢 - 是的,它有帮助,它推动我过去了我的误导和时间浪费尝试摔跤一些代码库,这是不是为此目的(并超出了我的JS经验水平)。我刚刚花了一个小时来处理** [RichFilemanager](https://github.com/servocoder/RichFilemanager)**并且无处可去 - 尽管它看起来很有希望使用nodejs ** [connector](https:// github。 com/servocoder/RichFilemanager/blob/master/connectors/nodejs/filemanager.js)。**感谢关于流的小技巧。 –

+0

嘿山姆 - 只是fyi,如果你还没有听说过[fs-jetpack](https://github.com/szwacz/fs-jetpack)。刚刚碰到它,它看起来非常有用,而且比fs更少。 –

+0

只是检查它,它似乎是一个不错的选择,它会隐藏你所有的错误处理过程,所以更少的代码写,提示的TY! – Sam