Node.js &引用;无法获取/quot;尝试连接到本地express服务器时
在完成代码学校的node.js课程后,我遵循了关于如何使用express 3设置socket.io服务器的指南,但当我尝试连接到localhost:8080时,它会告诉我“无法获取/”Node.js &引用;无法获取/quot;尝试连接到本地express服务器时,node.js,express,socket.io,Node.js,Express,Socket.io,在完成代码学校的node.js课程后,我遵循了关于如何使用express 3设置socket.io服务器的指南,但当我尝试连接到localhost:8080时,它会告诉我“无法获取/” 我的防火墙设置为允许8080端口上的传入和传出请求,并且安装了最新版本的express和socket.io。我的代码如下: app.js var express = require("express"); var socket = require("socket.io"); var app = express(
我的防火墙设置为允许8080端口上的传入和传出请求,并且安装了最新版本的express和socket.io。我的代码如下: app.js
var express = require("express");
var socket = require("socket.io");
var app = express();
app.use(express.static(__dirname + "/public"));
var server = app.listen(8080);
var io = socket.listen(server);
index.html
<!doctype html>
<html>
<head>
<script src="/socket.io/socket.io.js"></script>
<script type="text/javascript">
var server = io.connect("http://localhost:8080");
</script>
</head>
<body>
<p>Test</p>
</body>
</html>
编辑:
这在app.js中也不起作用:
var http = require("http");
var express = require("express");
var socket = require("socket.io");
var app = express();
app.use(express.static(__dirname + "/public"));
var server = http.createServer(app);
server.listen(8080);
var io = socket.listen(server);
如果这在windows上不起作用,请尝试在您的app.js中执行此操作:
var express = require("express");
var socket = require("socket.io");
var path = require('path');
// path is a built-in modules
var app = express();
app.use(express.static(path.join(__dirname, 'public')));
var server = app.listen(8080);
var io = socket.listen(server);
我发现我收到了错误,因为节点不够聪明,无法从localhost:8080默认设置index.htm,因此我需要键入localhost:8080/index.htm来访问该页面。Hm,因为这是Windows,请尝试将
app.js
中的“/public”更改为“\public”?何时收到错误?比如运行app.js或从浏览器点击服务器时?我在你的代码中没有看到任何路由。此外,Express 3要求您实例化一个http.Server
来连接套接字。io@MOmary如果未创建/route,Express静态中间件将自动从指定的静态文件夹(在本例中为“public”)提供index.html。上面的代码在Linux上运行良好,这就是我认为这是Windows路径问题的原因。@MOmary在尝试连接到localhost:8080时会显示错误。@ScottGress如果我尝试\public,我会收到相同的错误。它在我的PC上运行得很好!无论如何,如果您创建一个类似“aap.get('/',function(req,res){res.sendFile('index.html');})”的路由,那么localhost:8080将直接将您带到localhost:8080/index。html@MOmary谢谢你的提示。@MOmary但是,这样做会产生错误TypeError:Object#没有方法“sendFile”
,根据另一篇帖子,它应该是res.send(状态码,数据)代码>。抱歉,实际上我弄错了,它不是'res.sendfile()sendFile@MOmary更不用说app而不是aap,以及app.get方法末尾的分号了。它看起来是这样的:app.get('/',function(req,res){res.sendfile('index.html');})代码>
var express = require("express");
var socket = require("socket.io");
var path = require('path');
// path is a built-in modules
var app = express();
app.use(express.static(path.join(__dirname, 'public')));
var server = app.listen(8080);
var io = socket.listen(server);