Javascript 意外令牌:io.listen(服务器)
我不熟悉Javascript 意外令牌:io.listen(服务器),javascript,jquery,node.js,sockets,websocket,Javascript,Jquery,Node.js,Sockets,Websocket,我不熟悉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(r
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:\Users\user\Desktop\server.js
,得到以下错误:
C:\Users\user\Desktop\server.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(服务器)代码>
最初我想安装npm
包socket.io
,因此我尝试了以下方法:
npm安装--保存socket.io
但在此之后,我也得到了同样的错误:
C:\Users\user\Desktop\server.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)
通过使用关键字var
,它需要一个赋值语句或声明,而您正试图使用方法调用作为变量名
至于删除它,您将得到一个io未定义错误,因为看起来您没有调用该模块
var io = require("socket.io");
为什么你说的是var
,却没有声明变量?即使我删除了var
,我也会得到错误:io.listen(服务器);ReferenceError:io没有定义,所以在使用它之前需要它:var io=require('socket.io')代码>在这种情况下,我得到了错误:var foo=io.listen(服务器);引用错误:io未定义
当然,io
在代码中的任何位置都未定义。是正确的。因为我对node.js一无所知,所以我盲目地跟随这个链接:。您能建议如何解决这个问题吗?请看Sterling Archer的答案。您仍然需要安装模块,否则require语句将找不到它,您将获得另一个错误。
var io.listen(server);
var io = require("socket.io");