也许我要问的是愚蠢的,通常我不具备服务器端的经验。
我正在构建一个Angular Web应用程序,在服务器端使用nodeJS。
我需要服务器(Node.exe)将安装在设备本身(IOS / Android)中,nodeJS将打开一个localhost套接字与设备通信。
(根据nodeJS official web site,nodeJS仅支持windows / Mac OS / Linux)
可以这样做吗?
如果没有,我可以在设备中安装另一台服务器吗?
答案 0 :(得分:1)
是的,您可以使用JXCore(nodejs的一个分支),在此链接中有更多信息 Build Mobile Apps with JavaScript and the Node.js Ecosystem存储库就在这里。
如何编译它是在JXCore - How to Compile
但如果您需要它是nodejs(不是最后一个版本),您可以使用此链接执行您需要的操作Building and running Node.js for Android
更新 27-09-2018
就像有人指出的那样,该项目已不再维护,但我已经在Android手机上使用Termux找到并替代了你可以使用nodejs / gcc / vim / etc和更多工具做很多事情
此链接显示如何为nodejs执行此操作(我已在手机上测试过): Building a Node.js application on Android - Part 1: Termux, Vim and Node.js
首先从Playstore安装termux。
答案 1 :(得分:0)
我不明白在客户端使用服务器工具的重点。
如果您的应用程序应该使用离线模式,您应该将所有数据和其他数据放在客户端应用程序中(使用cordova)。
如果您的应用程序使用在线模式,则需要服务器端来提供数据。在这里,您可以设置nodeJS API,为您的应用程序提供要打印内容的路径。
我不确定我是否给了您想要的答案,那么可以解释一下在客户端设备上使用服务器工具的重点吗?
答案 2 :(得分:0)
您要实现的目标,将您的设备变为服务器。
服务器端语言意味着留在服务器上。 我真的不明白为什么你需要在设备上打开一个localhost套接字与自己进行通信。它是否用于离线测试?您可以这样做,因为您有一台计算机和一台设备,并且两者都连接到同一网络。 我相信一个非常好的开始是首先理解客户端 - 服务器架构的概念。
但简而言之,使用您选择的技术实现Client-Server应用程序的正确方法是: 服务器应该为客户端提供其请求的答案。 因此,在Node.js(服务器端)中,编写您想要与数据库通信的任何内容(创建,读取,更新,删除),执行自定义处理等... 并返回一个结构化的答案。
客户端期待他的请求的答案,并且应该在代码中处理答案。因此,用AngularJS编写的程序(这是您的客户端语言)将安装在设备上。
客户端必须知道服务器答案的格式。是纯文本吗? XML? JSON? ...
答案 3 :(得分:0)
所以你的意思是你希望有一个应用可以通过http运行一些服务吗?
不确定iOS是否允许应用程序使用JS虚拟机执行代码...
和Android 在Github上搜索,我发现如何为Android构建NodeJS https://github.com/dna2github/dna2oslab/tree/master/android/build
以下是在https://github.com/dna2github/dna2mtgol/tree/master/fileShare
上在Android上运行已编译的Nginx二进制文件的示例您可以修改一下以将Nginx替换为NodeJS。运行Nginx的代码不是很好;也许你可以试试Android服务让服务器在Android设备的后端运行。
希望这是你想要的。