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");