我是node.js
的新手。根据一些教程,我创建了一个名为server.js
的文件,并将以下代码放在该文件中:
var http = require("http");
var url = require('url');
var fs = require('fs');
var server = http.createServer(function(request, response){
console.log('Connection');
var path = url.parse(request.url).pathname;
console.log(path);
switch(path){
case '/':
response.writeHead(200, {'Content-Type': 'text/html'});
response.write('hello world');
break;
case '/socket.html':
response.writeHead(200, {'Content-Type': 'text/html'});
response.write('Inside hello world');
fs.readFile(__dirname + path, function(error, data){
if (error){
response.writeHead(404);
response.write("opps this doesn't exist - 403");
}
else{
response.writeHead(200, {"Content-Type": "text/html"});
response.write(data, "utf8");
}
});
break;
default:
response.writeHead(404);
response.write("opps this doesn't exist - 405");
break;
}
response.end();
});
server.listen(8001);
var io.listen(server);
然后我使用命令:node C:UsersuserDesktopserver.js
运行它,我得到了这个错误:
C:UsersuserDesktopserver.js:38
var io.listen(server);
^
SyntaxError: Unexpected token .
at Module._compile (module.js:439:25)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:906:3
这一行导致错误:
var io.listen(server);
最初我想安装npm
包socket.io
,因此我尝试了这个:
npm install --save socket.io
但在这之后,我也得到了同样的错误:
C:UsersuserDesktopserver.js:38
var io.listen(server);
^
SyntaxError: Unexpected token .
at Module._compile (module.js:439:25)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:906:3
请建议如何解决此错误。
var
关键字用于声明变量。我怀疑您缺少变量名:
var foo = io.listen(server);
除此之外,在您的代码中的任何其他地方都没有io
。你错过了一个电话吗?
socket.io库显然没有绑定:
C:>node
> require("socket.io");
Error: Cannot find module 'socket.io'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at repl:1:1
at REPLServer.self.eval (repl.js:110:21)
at repl.js:249:20
at REPLServer.self.eval (repl.js:122:7)
at Interface.<anonymous> (repl.js:239:12)
at Interface.EventEmitter.emit (events.js:95:17)
安装不过是一句话:
npm install socket.io
var io.listen(server);
通过使用关键字var
,它需要一个赋值语句或声明,而您正试图将方法调用基本上用作变量名。
至于删除它,你会得到一个io未定义的错误,因为它看起来像是你没有调用模块。
var io = require("socket.io");