0
以下のコードはどちらも、サーバ起動時にindex.html at localhost:3000 /に提供されます。なぜ誰かがapp.get
上express.static
を選ぶだろうapp.get
express.staticミドルウェアの使用
const path = require('path');
const express = require('express');
const PORT = process.env.port || 3000;
const publicPath = path.join(__dirname, '../public');
var app = express();
app.get('/',(req,res) => {
res.sendFile(publicPath + '/index.html');
})
app.listen(PORT,() => {
console.log(`Server is running on port ${PORT}`);
})
のexpress.static
const path = require('path');
const express = require('express');
const PORT = process.env.port || 3000;
const publicPath = path.join(__dirname, '../public');
var app = express();
app.use(express.static(publicPath));
app.listen(PORT,() => {
console.log(`Server is running on port ${PORT}`);
})
利用
使用すると、静的なHTMLファイルを提供します。 static
ミドルウェアの使用について
なぜ失敗するのですか?何か特別な理由? –
あなたがsendFile行を使って何をしているのか、クライアントは '/home.html'などのクライアントが要求した場合、クライアントが/ '方向を要求すると、Expressはあなたの/index.htmlを提供しています。 ExpressJS(実際にはNode.JS)はどこにあるのかわからないので、どこでそれを見つけるのかわかりません。 'app.use(express.static(publicPath)) 'を使うと、あなたはpublicPathでクライアントから要求された静的ファイルを見つけるべきだとExpressに伝えています。あなたの/index.html/にcssが含まれていれば、それも提供されなければならず、あなたはExpressにどこにそれを見つけるべきかを決して伝えませんでした(あなたはexpress.static行でそれを行います)。 – Jibril