【发布时间】:2014-08-12 03:46:49
【问题描述】:
我对 Node.js 很陌生。我正在探索路由(代码如下所示)。当客户端请求本地页面时,在本例中为 socket.html,客户端不会获得路由页面,而是显示一个空白页面。我没有看到来自 Node.js 框架的任何错误。 感谢您的关注。
var http = require("http");
var url = require('url');
var fs = require('fs');
var io = require('socket.io');
var path = '';
var server = http.createServer(function(request, response){
console.log('Connection');
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 '/socket2.html':
fs.createReadStream(__dirname + path, function(error, data){
if (error) {
console.log('there is error for ' + path);
response.writeHead(404);
response.write("opps this doesn't exist - 404");
}
else {
console.log('sending file ' + data);
response.writeHead(200, { 'Content-Type': 'text/html' });
response.write(data);
}
});
break;
default:
response.writeHead(404);
response.write("opps this doesn't exist - 404");
break;
}
console.log('send reponse');
response.end();
});
console.log('Listening');
server.listen(8001);
console.log('Socket started for ' + path);
io.listen(server);
//socket2.html页面内容
<!DOCTYPE html>
<html>
<head>
<title></title>
<script src="node_modules/socket.io/node_modules/socket.io-client/dist/socket.io.js"></script>
</head>
<body>
<script>
var socket = io.connect();
</script>
<div>This is our socket2.html file</div>
</body>
</html>
//实际页面内容
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv="Content-Type"
content="text/html; charset=windows-1252"></HEAD>
<BODY></BODY></HTML>
【问题讨论】:
-
有关问题的解释,请参见此处:stackoverflow.com/questions/20363617/…