【问题标题】:NodeJS on IOS/AndroidIOS/Android 上的 NodeJS
【发布时间】:2025-12-18 00:35:01
【问题描述】:

也许我要问的是愚蠢的,一般我没有服务器端的经验。

我正在构建一个 Angular Web 应用程序,在服务器端使用 nodeJS。

我需要服务器 (Node.exe) 将安装 in 设备本身 (IOS/Android),并且 nodeJS 将打开一个 localhost 套接字以与设备通信。

(根据nodeJSofficial web site,nodeJS只支持windows/Mac OS/Linux)

有可能吗?

如果没有,我可以在设备中安装另一台服务器吗?

【问题讨论】:

    标签: android ios angularjs node.js server


    【解决方案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


    更新 2018 年 9 月 27 日

    就像有人指出的那样,该项目不再维护,但我发现并通过在 Android 手机上使用 Termux 找到替代方案,您可以使用 nodejs / gcc / vim / etc 和更多工具来做很多事情

    此链接显示如何为 nodejs 执行此操作(我已经在手机上对其进行了测试): Building a Node.js application on Android - Part 1: Termux, Vim and Node.js

    当然,首先从 Playstore 安装 termux。

    【讨论】:

    • 很遗憾,JXCore 不再维护。我刚刚问了一个关于目前(2017 年 8 月)可行的替代方案的问题:Compiling NodeJS as native library on Android
    • @ArnoldSchrijver 我已经通过使用 Termux 添加替代方案来编辑​​我的答案,希望对您有所帮助
    • 谢谢@senteix2,但对 Termux 的要求使其不适合非技术用户,而且您必须对手机进行 root 才能使用 Termux(我上次检查过)。
    • @ArnoldSchrijver,我有一个无根的 Moto Z ,并且带有 nodejs 的 termux 在那里工作得很好,但是是的,它适用于更多的技术用户,除此之外,它是一个开源项目,可以定制/perzonalized 和 fork 到满足您的需求,
    【解决方案2】:

    我不明白在客户端使用服务器工具的意义。

    如果您的应用程序应该在离线模式下工作,您应该将所有数据和其他数据放在您的客户端应用程序中(使用 cordova)。

    如果您的应用程序使用在线模式,则需要服务器端来提供您的数据。在这里您可以设置一个 nodeJS API,它为您的应用程序提供打印内容的路由。

    我不确定我是否为您带来了想要的答案,所以能否详细说明在客户端设备上使用服务器工具的意义?

    【讨论】:

      【解决方案3】:

      您想要实现的目标是将您的设备变成服务器。

      服务器端语言旨在保留在服务器上。 我真的不明白为什么你需要在设备上打开一个 localhost 套接字来与自身通信。是用于离线测试吗?您可以这样做,因为您有一台计算机和一台设备,并且两者都连接到同一个网络。 我相信一个非常好的开始是首先理解客户端-服务器架构的概念。

      但简而言之,使用您选择的技术实现客户端-服务器应用程序的正确方法是: 服务器应向客户端提供其请求的答案。 因此,在 Node.js(服务器端)中,编写您想要与数据库通信的任何内容(创建、读取、更新、删除),进行自定义处理等...... 并返回一个结构化的答案。

      客户期待他的请求得到答复,并且应该用代码处理答案。因此,用 AngularJS(这是您的客户端语言)编写的程序将安装在设备上。

      客户端必须知道服务器应答的格式。是纯文本吗? XML? JSON? ...

      【讨论】:

        【解决方案4】:

        所以你的意思是你想让一个应用程序可以通过 http 运行一些服务?

        不确定 iOS 是否允许带有 JS 虚拟机的应用程序执行代码...

        对于安卓
        在 Github 上搜索,我发现如何为 Android 构建 NodeJS https://github.com/dna2github/dna2oslab/tree/master/android/build

        这是一个在 Android 上运行已编译的 Nginx 二进制文件的示例,地址为 https://github.com/dna2github/dna2mtgol/tree/master/fileShare

        你可以多做一些修改,将 Nginx 替换为 NodeJS。运行 Nginx 的代码不是很好;也许你可以尝试一个 Android Service 让服务器在 Android 设备的后端运行。

        希望这是你想要的。

        【讨论】: