2012-07-25 61 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