尝试连接到本地快递服务器时“无法GET /”
完成Code School的node.js课程之后,我按照这个指南来介绍如何使用express 3来设置socket.io服务器,但是当我尝试连接到localhost:8080时,它给了我“无法GET /”。
我的防火墙设置为允许端口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>
目录结构
C:\Users\Joseph\Desktop\test\node_modules \public\index.html \app.js
编辑:
这也不适用于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);
我发现我得到的错误,因为节点不够聪明,以默认目标index.htm从本地主机:8080,因此我需要键入本地主机:8080 / index.htm访问该页面。
那么如果这不是在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);