【问题标题】:Asset database for Electron desktop app?Electron 桌面应用程序的资产数据库?
【发布时间】:2017-03-05 08:46:32
【问题描述】:

我是来自 Flex/Actionscript 世界的难民,我正在使用 Electron 作为运行时引擎将一个大型遗留 Flex 应用程序“移植”(基本上重写)到 Javascript。我边走边学,做一些小测试来探索各种 JavaScript 库和框架的功能和适用性。

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

虽然从头开始编写它会很有趣,但工作量很大,而且我想到可能有一个现有的库或 CMS 框架我可以适应这个。这个想法是不是被误导了?是否有针对此类需求的现有解决方案?

【问题讨论】:

  • 你试过 Nodejs 文件系统吗? nodejs.org/api/fs.html 还是 fs-extra?
  • @Philip - 谢谢,是的,我已经使用它了一点,它当然需要成为我最终的一部分。我想我一直在寻找一些处理 UI 前端的东西——树视图、文件预览等,但是在查看了许多项目之后,大多数项目都与 PHP 紧密相关,或者以其他方式纠缠在一起,这会比它更麻烦值得尝试调整一些东西来处理本地文件。最终可能会使用 fs、pouchdb 并从头开始编写。

标签: javascript html node.js electron


【解决方案1】:

我正在做一个对文件操作和数据库记录有相同要求的项目,所以让我给你一些提示:

  • 使用占用空间小的数据库(leveldb、nedb、lovefield),因为您需要将其打包到应用程序中。

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

  • 通过分离主要(electron-main、node 模块等)文件和渲染器(视图、客户端 js、图像...)文件来构建您的应用程序

  • 1234563 '不喜欢不存在的位置)。
  • 如果文件很大,请使用流来移动资产,createReadStream 和 createWriteStream 应该是用于读写文件的唯一方法。

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

  • viewpart使用框架,看你熟悉什么,但是angular、react、vuejs会是不错的选择。

最后检查这个链接,它将帮助您了解您可以使用的东西 https://github.com/sindresorhus/awesome-electron

希望对你有帮助

【讨论】:

  • 谢谢 - 是的,它有帮助,它使我摆脱了我误入歧途和浪费时间的尝试来处理一些不适合此目的的代码库(并且超出了我的 JS 经验水平)。我只花了一个小时摆弄 RichFilemanager 却一无所获——尽管使用 nodejs connector 看起来很有希望。感谢有关流的提示。
  • 嘿 Sam - 如果您还没有听说过这个 fs-jetpack,请参考。刚看到它,它看起来真的很有用,而且比 fs 更少的螺母和螺栓。
  • 刚刚查了一下,似乎是个不错的选择,它会隐藏所有的错误处理过程,减少代码编写,提示!
猜你喜欢
  • 2012-04-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-28
  • 1970-01-01
  • 2017-01-16
相关资源
最近更新 更多