Node.js的“Hello World”示例 - 符号查找错误

3

更新-- LINUX FEDORA 15

参考以下示例:

http://simonwillison.net/2009/Nov/23/node/

我的代码:


请注意,此处为修改后的内容。
var util = require('util'),
    http = require('http');

http.createServer(function(req, res) {
  res.sendHeader(200, {'Content-Type': 'text/html' });
  res.sendBody('<h1>Hello World</h1>');
  res.finish();
}).listen(8080);

util.puts('Server running at http://127.0.0.1:8080');

会产生以下错误:

[abu@Beelzebub node_projects]$ nodejs helloworld.js
Server running at http://127.0.0.1:8080
nodejs: symbol lookup error: nodejs: undefined symbol: _ZN2v82V816IdleNotificationEv

我的初始安装是使用yum软件包管理器完成的。我相信我必须对存储库执行一些更新(或引用替代存储库)才能安装node.js。 - Aardvark
问题已经解决。我删除了一个现有的节点应用程序(似乎与收音机有关?);然后从http://nodejs.tchol.org/下载并安装了rpm nodejs-0.6.15-1(Apr 11),使用标准的make install。 - Aardvark
3个回答

0

要执行一个Node.js应用程序,请使用node而不是nodejs。

node helloworld.js

这个特定的错误似乎类似于 Node 0.6.15 中存在的 V8 构建不匹配问题。您是否尝试使用更新的(或回滚到旧版本的)Node版本?


1
有另一个节点(与JS无关)应用程序;我假设这就是为什么node.js安装为nodejs以避免冲突的原因... - Aardvark
似乎出现了一些依赖问题...我最初使用yum软件包管理器进行安装;这种方法似乎不如下载文件并执行标准的make install可靠。 - Aardvark

0

这是2009年的教程和旧的API。你应该像这样做。

var http = require('http');
var server = http.createServer(function (request, response) {
  response.writeHead(200, {"Content-Type": "text/plain"});
  response.end("Hello World\n");
});
server.listen(8000);
console.log("Server running at http://127.0.0.1:8000/");

你的教程有点老了 :) 转到这个新的 ->

http://howtonode.org/hello-node


0

在 Fedora Linux 上执行 node.js 安装,需下载并安装独立的 rpm(http://nodejs.tchol.org/stable/f16/SRPMS/repoview/nodejs.html),然后按以下步骤进行安装:

  1. 使用软件包管理器删除任何现有的 node 和 nodejs 应用程序

  2. 从独立的 rpm 安装 node.js

    rpm –ivh ./configure make make install

尝试使用软件包管理器可能会导致依赖性问题,如下网站所述:

http://nodejs.tchol.org/


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接