[英]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.