簡體   English   中英

如何將頁面返回到Node.js客戶端?

[英]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.jsexpress框架。

我確定沒有人使用節點內置的HTTP服務器和切換運算符解決此任務。 也許您只需要一個單獨的Web服務器(如nginx)即可提供靜態服務,並將某些位置傳遞給node.js應用程序以呈現一些動態頁面。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM