2014-09-24 61 views
0

我过去几个月内构建了一个AngularJS应用程序,该应用程序利用MySQL数据库来处理其数据。这些数据是通过Angular调用PHP和PHP返回JSON字符串等来获取的。在Node-Webkit中使用PHP

问题是一旦这个应用程序在node-webkit内部运行,php中的任何一个都不起作用,所以所有的内容区域都是空的。我认为(尽管关于这个问题的文档是空的,所以我没有确认),这是因为Node-webkit是一个客户端应用程序框架,因此不会运行像php这样的服务器端语言。有没有办法扩展节点的webkit运行PHP和其他服务器端语言?

我已经尽力在发布前找到这个问题的答案,但文档不存在,并且我发现有关node-webkit的所有信息都会讨论如何在服务器上安装节点并为MySQL安装npms并有角度调用节点。这完全破坏了应用程序的目的,因为它的设计使得exe/deb/rpm/dmg可以运行,并且您可以使用任何云数据库提供程序设置数据库并准备就绪。如果你不得不为了运行这一件事而购买vps,那就不是很理想。我不得不认为这是可能的某种方式。我拒绝相信每个使用新应用程序的人都会硬编码所有数据。

在此先感谢

+0

为什么你认为你需要Node-webkit?请注意,node.js在服务器上运行JavaScript,而带有modphp的Apache在服务器上运行PHP。 – mb21 2014-09-24 16:41:41

+0

因为id喜欢它是一个桌面应用程序而不是基于浏览器的应用程序。为了从远程数据库调用数据而不是由开发人员进行监督,php特别阻止了localhost作为服务器执行的服务器? – 2014-09-24 16:45:09

+0

值得注意的是,我对此开放其他解决方案。我不愿意拥有的是Web服务器或Node Web服务器上的远程脚本。我需要在包装器中运行客户端计算机的所有调用(不一定是客户端,仅从他们的计算机)。这样,共享数据库可以存储在公司服务器,云数据库提供商,网站主机等任何地方。 – 2014-09-24 17:51:08

回答

3

我知道四种方法来完成此操作。其中一些你不愿意做,但我会提供他们希望它可以帮助你或其他人。

  1. 找一个可以为你做这个的NPM。您应该能够在node.js中执行此功能。 - https://www.npmjs.com/search?q=mysql

  2. 您可以远程托管您的PHP。使用node-remote,您可以为该服务器提供对NW.js项目的适当访问。

  3. 您可以编写JavaScript可以传递信息的RESTful PHP应用程序。

  4. 您可以使用我的样板代码在NW.js项目中运行PHP。然而,它在内部启动了一个express.js Web服务器来完成此操作。但是,服务器被限制到机器,不接受外界的连接 - https://github.com/baconface/php-webkit

1和4都在你的情况下进行的风险。您的项目可以被颠倒过来以显示源代码,并且可以检索连接信息,相当容易。所以这只应该在可信计算机上的应用中,2和3是理想的解决方案。

+0

好一年后,似乎有人明白我正在尝试做什么!你的php-webkit看起来是一个理想的解决方案。我基本上放弃了一个非常棒的应用程序,因为没有办法做我想做的事,我不希望根据我工作的公司的要求在任何类型的网站上公开提供信息。生病让你知道它是怎么回事,并且生病一定要问我是否有任何问题得到它所有的设置! 谢谢! – 2015-03-24 18:32:26

+0

没问题。我有一个更新的版本,我一直在推动回购。但是这应该完成你想要做的事情。如果您有任何问题,请告诉我。谢谢。 – 2015-03-26 17:47:26

-1

为什么你不使用http套接字来创建自己的本地服务器并使用php.exe调用进程并尝试使用节点webkit它非常简单?你为什么问愚蠢?检查io.js网站和HTTP套接字读取正确,并尝试拥有本地服务器而不是调用PHP文件,而不是像xampp或apache服务器引擎一样工作。谢谢!