1. ホーム
  2. javascript

[解決済み] Nodejs: Error: モジュール 'html' が見つかりません。

2022-02-27 05:09:40

質問

nodejsを使用しており、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" というように試すと、以下のメッセージが表示されます。 Error: Cannot find module 'html'

私はnodejsの初心者です、しかし私は欲しいです すべて をレンダリングするための index.html ファイルを作成します。どうすればいいのでしょうか?

ありがとうございました。

解決方法は?

ビューフォルダを指定し、エンジンをパースして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() {
});