簡體   English   中英

Nodejs:錯誤:找不到模塊“html”

[英]Nodejs: Error: Cannot find module 'html'

我正在使用 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() {
});

當我點擊 url "localhost:5000/" 時,這很好,但是當我嘗試類似 "localhost:5000/whatever" 的內容時,我收到以下消息:錯誤:找不到模塊 '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() {
});

僅在使用 jade 或 ejs 等渲染引擎時才使用渲染。 如果您想使用純 HTML,請將其放在公共文件夾中或作為靜態文件使用。

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

首先你需要安裝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() {
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM