2017-04-12 7 views
-2

私はButtonタグについては言及していません。私は提出のタイプの入力タグについて話しています。現在のページを読み込むためにfsを使用しています。私は表現を学ぼうとしています。Expressで送信ボタンを押したときにページを開くにはどうすればよいですか?

Server.js:

var express = require('express'); 
var path = require('path'); 
var fs = require('fs'); 

var app = express(); 

app.use(express.static(path.join(__dirname+'/public/'))); 
app.use(require('body-parser').urlencoded({ extended: true })); 

app.get('/', function(a,b,c){ 
    fs.readFileSync('index.html'); 
}); 

app.post('/testaction', function(a,b){ 
    console.log(a.body.log); 
    fs.readFileSync('public/Logged.html'); 
}); 

app.listen(3000); 

はindex.htmlを:

<!DOCTYPE html> 
<html> 
    <head> 
    <title>Test Page</title> 
    </head> 
    <body> 
    <form method="post" action="http://localhost:3000/testaction"> 
     <h1>Log This:</h1> 
     <input type="text" name="log"/> 
     <input type="submit", value="Press Me!"/> 
    </form> 
    </body> 
</html> 
+0

あなたがしようとしていることを明確にするのに役立つコードを教えてください。クライアントがフォームを送信したときに、特定のPOST要求に応答して特定の静的ページをクライアントに返送しようとしているようです。 –

答えて

0

基本的にあなたが本当にここFSを必要としません。

例文app.get()は、2つの引数:処理したいURLと2つまたは3つの引数を持つコールバックをとります。

通常、次のように使用します。app.get("/",(req,res)=>{});(req = request、res = response)

応答は、ファイルを送信する方法があります:/testactionへのPOSTのAJAXリクエストを作るのindex.htmlに

  • http://expressjs.com/fr/4x/api.html#res.sendFile

    は、今すぐあなたの問題のために、あなたは、Ajaxリクエストとしてこれを管理することができます。 server.jsで

  • ちょうどあなたapp.post
  • にステータスを返す状況があなたのAJAX応答でOKであれば/testにリダイレクトのindex.htmlにapp.get("/test",(req,res)=>{res.sendFile("public/Logged.html");});
  • のような別のルートを作成します。
関連する問題