【问题标题】:Is it possible to run a local web server with node.js on Android?是否可以在 Android 上使用 node.js 运行本地 Web 服务器?
【发布时间】:2015-05-31 22:38:31
【问题描述】:

我正在构建一个 node.js 应用程序(node.js 用于服务器端,html/javascript/css 用于客户端)。这是我的server.js 文件:

var app = require('http').createServer(handler),
  fs = require('fs'),
  static = require('node-static');

// handle web server
function handler (req, res) {
  fs.readFile(__dirname + '/client/client.html',
  function (err, data) {
    if (err) {
      res.writeHead(500);
      return res.end('Error loading client.html');
    }
    res.writeHead(200);
    res.end(data);
  });
}

// creating the server ( localhost:8000 )
app.listen(8000);


// Create a node-static server instance to serve the './static' folder
var staticFiles = new static.Server('./static');

require('http').createServer(function (request, response) {
    request.addListener('end', function () {
        //
        // Serve files!
        //
        staticFiles.serve(request, response);
    }).resume();
}).listen(8080);

我使用它作为本地服务器来构建我的应用程序。在我的计算机上,我在终端中使用命令 node server.js 来运行服务器并在以下地址提供我的 html 和 javascript 文件:http://localhost:8000/

我想在装有 android 的平板电脑上做同样的事情。这可能吗?怎么做?

编辑:我已经看到这可能是here,但我不确定问题是否相同。

【问题讨论】:

  • 你可以从安卓应用连接到一个有node.js的家庭服务器,但是你不能在你的手机中建立一个服务器
  • @Ryan 好的,但它不是安卓应用。那么是否可以在笔记本电脑上运行 node.js 服务器并在平板电脑的本地地址上提供文件?
  • 您的平板电脑有什么操作系统?
  • @Ryan 它有安卓

标签: android node.js server


【解决方案1】:

我在 Android 设备上的 Linux 上运行 Node.js。我是这样做的:

  1. 从 Play 商店安装 Kingroot 以在 Android 设备上获取 root。
  2. 安装 Linux Deploy,然后用它来安装 Fedora。
  3. 使用 Android Terminal su 以在 Android 中 root,然后运行 ​​data/data/ru.meefik.com/linuxdeploy/files/bin/linuxdeploy shell 以在 Linux 容器中获取 root shell。
  4. 将 Linux 容器中的 root 密码更改为“a”(由于某种原因,它不会占用多个字符)。
  5. 使用 JuiceSSH SSH 进入 Fedora Linux 容器。 Su 到 root 并更改密码。
  6. dnf install nodejs npm # install node
  7. npm install -g n # 安装子栈的节点版本管理器
  8. n 5.3.0 #安装node v5.3.0
  9. mv /usr/sbin/node /usr/sbin/node.orig
  10. mv /usr/sbin/npm /usr/sbin/npm.orig
  11. ln -s /usr/local/bin/node /usr/sbin/node
  12. ln -s /usr/local/bin/npm /usr/sbin/npm

步骤 9 - 12 是必要的,因为sudo node --version 将始终返回 dnf 安装版本,而不是 n 安装版本。

【讨论】: