0

ノードにhtmlファイル(test.html)を読み取らせ、テキスト入力を介してユーザー入力を同じファイルに非同期に書き込むことができるかどうかを理解しようとしています。webserver.js に Web サーバーをセットアップしてから、test.html という名前の別のページをセットアップしました。

スイッチの「テスト」ケースにリスナーを追加して、データをリッスンし、サーバーターミナルにデータを記録してから、このデータをファイルに書き込みます。

webserver.js スクリプトから test.html の入力フィールドに直接接続されていないことは理解しています。これが最初の問題かもしれません。次に、test.html に応答をレンダリングする領域が定義されていないことを認識しています。これは、Node.js で行う方法を知りたいことです。

ですから、それほど問題がなければ、これを機能させる方法について少しガイダンスが得られることを願っています。

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 で実行できるかどうか疑問に思っています。

どんな助けでも大歓迎です、ありがとう。

4

1 に答える 1

1

テキスト フィールドをサーバーに戻さなければなりません。それがフォームの役割です。

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

実際にコンテンツを html ファイルに書き込むには、node.js 標準ライブラリのfsモジュールを使用する必要があります。

于 2012-07-25T00:58:09.513 に答える