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() {
});