0

我在 Android 上运行 node.js v0.11(通过https://github.com/paddybyers/node)。我试图尝试在这里找到的“Hello HTTP”示例:http: //howtonode.org/hello-node,但是,我遇到了问题。

服务器启动正常,但只要我尝试连接到 http 服务器(通过访问http://localhost:8000/),我就会收到此错误:

net.js:1156
  COUNTER_NET_SERVER_CONNECTION(socket);
  ^
ReferenceError: COUNTER_NET_SERVER_CONNECTION is not defined
    at TCP.onconnection (net.js:1156:3)

我的代码与 Hello HTTP 示例完全相同:

//Load the http module to create an http server.
var http = require('http');

// Configure our HTTP server to respond with Hello World to all requests.
var server = http.createServer(function (request, response) {
  response.writeHead(200, {"Content-Type": "text/plain"});
  response.end("Hello World\n");
});

// Listen on port 8000, IP defaults to 127.0.0.1
server.listen(8000);

// Put a friendly message on the terminal
console.log("Server running at http://127.0.0.1:8000/");

我怎样才能解决这个问题?

谢谢!

4

2 回答 2

0

我只是在 lib/ 下的 javascript 文件中注释掉了所有 COUNTER_NET_ 、 COUNTER_HTTP_、 DTRACE_NET_和 DTRACE_HTTP_调用。这相当于我从 net.js 和 http.js 中注释掉的大约 10 行左右。

我认为 js2c.py 应该处理 src/macros.py 和 src/perfctr_macros.py 以便在将 lib/ 下的脚本序列化为 out/release/src/node_natives 中的 C 数组时为您有效地“注释掉” .h,但这似乎没有发生。

于 2014-06-11T11:14:08.253 回答
0

使用 HAVE_PERFCTR 选项编译 Node.js。(您需要为 Android 实现自己的 perfctrs。请参阅 node_counters.cc 第 130 行)。

还应该可以将脚本中缺少的函数定义为空函数。

PS.:你还需要 DTRACE。

于 2014-01-15T08:32:28.007 回答