繁体   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