2012-03-17 112 views
6

我正在Node.js中開發一個小應用程序。我只是使用Node.js進行輸入和輸出。實際的網站正在運行nginx。該網站與node.js有一個Websocket連接,主要用於數據庫操作。獲取node.js以html格式讀取文件

我試圖做的事情之一是讓節點發送小塊的HTML以及來自數據庫的數據。我試了下面的代碼。

簡化:

connection.on('message', function(message) { 
     fs.readFile(__dirname + '/views/user.html', function(err, html){ 

      if(err){ 
       console.log(err); 
      }else{ 
       connection.sendUTF(JSON.stringify({ 
        content: html, 
        data: {} 
       })); 
      } 
     }); 
    } 
}); 

當我console.log(html)在服務器或客戶端我只得到數字回來。

任何人都知道可能是錯的。

注:我真的想遠離的東西走像socket.ioexpress等只是保持它儘可能簡單和不需要回退。

+0

的[此]步驟3(http://net.tutsplus.com/tutorials/javascript-ajax/learning-serverside-javascript-with-node-js /)?另外,顯然你可能想用「writeHead」替換「sendHeader」。 – cormacrelf 2012-03-17 10:16:49

+0

我在哪裏可以取代senHeader? – 2012-03-17 10:53:56

回答

22

如果您未指定fs.readFile的編碼,您將檢索原始緩衝區而不是預期的文件內容。

嘗試調用這種方式:

fs.readFile(__dirname + '/views/user.html', 'utf8', function(err, html){ 
.... 
+0

好吧,我會嘗試。我以爲我在文檔中看過,當你沒有指定任何內容時它會自動默認爲utf8。也許我忽略了一些東西。將嘗試此並報告回來。 – 2012-03-17 10:54:52

+0

這個伎倆! – 2012-03-17 11:02:05

+0

感謝您的回答! :) – Aircraft5 2017-02-28 20:57:02