Nodejs: Ошибка: не удается найти модуль 'html'

im, используя nodejs и im, пытаясь обслуживать только файлы html (без jade, ejs...).

heres мой код точки входа (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() {
});

Это отлично, когда я нажимаю URL-адрес "localhost: 5000/", но когда я пытаюсь что-то вроде "localhost: 5000/whatever", я получил следующее сообщение: Ошибка: не удается найти модуль 'html'

im new для nodejs, но я хочу, чтобы все маршруты отображали файл 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() {
});

Ответ 2

Можно использовать рендеринг только при использовании некоторых движков рендеринга, таких как jade или ejs, если вы планируете использовать простой HTML, поместите его в общую папку или подайте в виде статического файла.

res.sendFile('index2.html', {root : __dirname + '/views'});

Ответ 3

Прежде всего вам нужно установить движок ejs. Для этого вы можете использовать следующий код

npm install ejs

После этого вам нужно добавить движок приложения и установить каталог просмотра.

Измененный код приведен ниже,

var express = require('express');
var bodyParser = require('body-parser');
var app = express();

app.use(bodyParser.urlencoded({ extended: true }));

app.set('port', (process.env.PORT || 5000));
app.use(express.static(__dirname + '/public'));
app.set('views', __dirname + '/public');
app.engine('html', require('ejs').renderFile);
app.set('view engine', 'html');

app.listen(app.get('port'), function() {
});