【问题标题】:Port Node.js/Express.js + MongoDB Application to Desktop将 Node.js/Express.js + MongoDB 应用程序移植到桌面
【发布时间】:2016-03-07 00:49:08
【问题描述】:

我最近开始开发一个面向 Web 的应用程序,使用 Express.js + MongoDB 定义一个 RESTFull 接口,所有这些都与使用 AJAX 接收和写入数据的 HTML5 前端相结合。

最初的几个 Beta 测试人员报告说,他们不同意该应用程序是一个 Web 应用程序,出于安全原因(处理个人数据),他们宁愿将所有内容都放在自己的计算机上。

现在,我知道有几种方法可以让 Node.js 应用程序看起来像原生应用程序,请参阅 Packaging a node.js webapp as a normal desktop app [closed]。我已经尝试过 NW.js,但我似乎找不到在 NW.js 的限制范围内实际运行应用程序的 express.js 部分的选项。

我的问题:

  • 有没有办法运行一个用 node & express 编程的 restful api 在 NW.js 中?
  • 是否可以在该容器内运行 MongoDB?
  • 如果两者或其中一个都不正确,是否有框架支持 将 express 和 mongodb 作为桌面应用程序与我的应用一起运行?

【问题讨论】:

  • 为什么需要一个用户的数据库?您不能使用 json 文件来存储该数据吗?在客户端上使用 express 和数据库对我来说没有多大意义。 Express 实际上是介于数据库和客户端之间的某种东西。如果你只是在客户端,你不需要那个
  • 这有点取决于用例。我更喜欢数据库,因为要处理的数据量很大。正如我所说,它是一个端口,原始软件是用 express 编写的,因为它被计划为一个网络服务。这个社区日益敌对。人们不阅读和理解这个问题并投票反对真的让我很生气。
  • 有一些客户端数据库,看看这个stackoverflow.com/questions/4777968/i-need-a-client-side-browser-database-what-are-my-options
  • @Molda 有很多原因可能会让人们更喜欢本地数据库。我在使用electronLevelDB 时有过很好的体验。您不会使用 Express,但根据您已经构建应用程序的方式,编写连接器类作为路由的替代品可能很简单。编辑:由于您已经在使用 MongoDB,LevelDB 可能是一个有吸引力的嵌入式选项,因为它具有令人印象深刻的模块集合,例如支持 MongoDB 样式查询的 LinvoDB
  • 让我告诉你这不是一件容易的事,但你可以用 Electron 来做,这个应用程序允许你创建一个 .exe 文件,你可以在其中启动你的 express 服务器,所以你的应用程序,,, 主要问题是你什么时候要在桌面上安装它,因为之后必须安装 node 和 mongo。

标签: node.js mongodb rest express desktop-application


【解决方案1】:

我会集中精力将您在移植应用程序上的工作重点放在让这些客户对您以现有 Web 应用程序格式保护其数据的安全措施感到满意。

但如果您真的希望他们在本地运行它,那么他们可能需要安装自己的 Mongo。我找到了 NeDB,而不是完整的 mongo 安装。它实现了相同的 Mongo api,因此您应该能够轻松移植。

https://github.com/louischatriot/nedb

Node.js、nw.js、Electron 的嵌入式持久性或内存数据库 和浏览器,100% Javascript,无二进制依赖。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-21
    • 1970-01-01
    • 1970-01-01
    • 2012-03-21
    • 1970-01-01
    相关资源
    最近更新 更多