2017-04-12 13 views
1

私は急行を学ぼうとしています。私はHTMLページを読み込むためにFSを使用しています。私はこれでGoogle検索で見つけることができる唯一の事は、Expressの代わりにASP.NETを使用していた。Expressメインページのみを読み込みます

Server.js:

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

var app = express(); 

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

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

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

app.listen(3000); 

のindex.html:fsを使用する必要はありませんファイルを提供するために

<!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> 

答えて

1

。例:

app.get('/', function(req, res, next) { 
    res.render('index'); 
}); 

あなたがリダイレクトする必要がある場合は、あなたが使用することができます。

res.redirect('/staticFile.html'); 
0

これらの行削除:この行はミドルウェアであり、それはリクエストごとにすべてのルートに適用されます

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

を:

Itあなたが提供するパスから静的ファイルを提供することが目的です。この場合、ルートディレクトリから提供していますので、たとえばhttp://localhost:3000/package.jsonのようなすべてのコードファイルに移動できます。

それはあなたがapp.get('/'を書くとき、あなたが新しいルートにそのミドルウェアを無効にして唯一のファイルにサービスを提供しようと

...ポストなどを入れます、すべてのHTTPメソッドに適用されます。そのコードを削除するだけで、上で指定したディレクトリからすべて静的にサーバーすることになります。

app.use('/', express.static(__dirname + '/site')); 
:あなたのコードファイルを提供したくない場合は

は、例えば、「サイト」として、別のフォルダにあなたの静的ファイルを置くと、そのフォルダにあなたの静的なパスを設定します

関連する問題