私は Node.js を使用しており、HTML ファイルのみを提供しようとしています (Jade、EJS などのエンジンは使用していません)。
これが私のエントリポイント (index.js) コードです:
var express = require('express');
var bodyParser = require('body-parser');
var app = express();
app.set('port', (process.env.PORT || 5000));
app.use(express.static(__dirname + '/public'));
app.use(bodyParser.urlencoded({
extended: true
}));
app.use(bodyParser.json());
app.use(express.static(__dirname + '/public'));
app.get('*', function(req, res){
res.render('index.html');
});
app.listen(app.get('port'), function() {
});
「localhost:5000/」という URL にアクセスすると問題なく動作しますが、「localhost:5000/whatever」のような URL にアクセスすると、次のメッセージが表示されます。エラー: モジュール 'html' が見つかりません
私はNode.jsの初心者ですが、全てファイルをレンダリングするためのルートindex.html
。どうすればそれができるのでしょうか?
ありがとう。
ベストアンサー1
ビュー フォルダーを指定し、エンジンを HTML に解析する必要があります。
var express = require('express');
var bodyParser = require('body-parser');
var app = express();
app.set('port', (process.env.PORT || 5000));
app.use(express.static(__dirname + '/public'));
app.set('views', __dirname + '/public/views');
app.engine('html', require('ejs').renderFile);
app.set('view engine', 'html');
app.use(bodyParser.urlencoded({
extended: true
}));
app.use(bodyParser.json());
app.get('*', function(req, res){
res.render('index.html');
});
app.listen(app.get('port'), function() {
});