有同样的问题。如上所述解决了问题。
在我index.js
var port = 1338,
express = require('express'),
app = express().use(express.static(__dirname + '/')),
http = require('http').Server(app),
io = require('socket.io')(http);
app.get('/', function(req, res){
res.sendFile(__dirname + '/index.html');
});
io.on('connection', function(socket){
console.log('a user connected');
});
http.listen(port, function(){
console.log("Node server listening on port " + port);
});
,并在我的index.html
<!doctype html>
<html>
<head>
<title>
My page
</title>
</head>
<body>
<script src = "lib/socket.io.js"></script>
<script src = "lib/three.js"></script>
<script>
var socket = io();
</script>
</body>
</html>
的three.js所只是在那里路径测试。这会将所有子文件设置为在应用程序的根目录下启动。另外,socket.io.js可以使用<script src = "/socket.io/socket.io.js">
通过一些黑暗的魔法自动调用(因为物理上有一个node_modules和lib目录)。
啊,非常感谢。所有这些旧的node.js文章都让我对这些被弃用的东西感到困惑。 – 2012-03-09 01:42:32
我已经尝试了这两种方法,他们都表示未定义不是函数。在第一个示例中,这告诉我.createServer()不是函数,而在第二个示例中,__dirname无效。 – 2015-10-16 14:16:21