[英]How to return a page to Node.js client?
我是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>
請看一下catberry.js或express框架。
我確定沒有人使用節點內置的HTTP服務器和切換運算符解決此任務。 也許您只需要一個單獨的Web服務器(如nginx)即可提供靜態服務,並將某些位置傳遞給node.js應用程序以呈現一些動態頁面。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.