2012-07-25 40 views
0

我試圖瞭解是否可以讓節點讀取一個html文件(test.html),然後通過一個用戶輸入文件異步地寫入同一個文件文本輸入。 我已經在webserver.js上設置了我的Web服務器,然後設置了另一個名爲test.html的頁面。Node.JS - 讀取一個.html文件並將用戶輸入寫入它

我在交換機中添加了偵聽器,用於監聽數據,將數據記錄到服務器終端,然後(我假設)將這些數據寫入文件。

我知道沒有從webserver.js腳本直接連接到test.html上的輸入字段,這可能是我的第一個問題。 其次,我知道test.html上沒有定義區域來呈現響應。 這是我想知道如何在Node中完成的事情。

因此,我希望我能得到一些指導,說明如何讓這個工作起來,如果它不是太麻煩。

var http = require('http') 
, url = require('url') 
, fs = require('fs') 
, server; 

server = http.createServer(function(req, res){ 

    var path = url.parse(req.url).pathname; 

    var userData = ""; 

    switch(path){ 

     case '/': 
     fs.readFile(__dirname + '/index.html', function (err, data) { 
      if (err) throw err; 
      res.writeHead(200, {'Content-Type': 'text/html'}); 
      res.write(data, 'utf8'); 
      res.end(); 
     }); 

     case '/test': 
     fs.readFile(__dirname + '/test.html', function (err, data) { 
      if (err) throw err; 
      res.writeHead(200, {'Content-Type': 'text/html'}); 
      res.write(data, 'utf8'); 

      req.addListener("data", function(userDataChunk) { 
       userData += userDataChunk; 
       console.log("Received chunk ’"+userDataChunk + "’."); 
       res.end("<p>" + userData + "</p>"); 
      }); 

     }); 

     break; 

     default: '/'; 
    } 
}); 

和test.html的我只是有一個文本輸入

<html> 
    <head></head> 
    <body> 
    <input type="text" name="userInput" /> 
    </body> 
</html> 

我知道我可以只添加上的test.html一些JavaScript採取KEYUP的輸入,並將其寫入頁面,但我只是想知道這是否可以用Node.js完成?

任何幫助表示讚賞,謝謝。

回答

1

您必須將文本字段返回到服務器,這就是表單所做的。

<html> 
    <head></head> 
    <body> 
    <form action="/test"> 
     <input type="text" name="userInput" /> 
     <input type="submit" /> 
    </form> 
    </body> 
</html> 

我們實際上寫的內容到HTML文件,你將不得不使用Node.js的中標準fs module庫。

+0

謝謝亞歷克斯,我會給它一個去 – 2012-07-25 01:00:25

相關問題