呈现基本的 HTML 视图?

2022-08-29 23:57:21

我有一个基本的Node.js应用程序,我正在尝试使用Express框架启动它。我有一个文件夹,里面有一个文件。但是我在加载网页时收到以下错误:viewsindex.html

Error: Cannot find module 'html'

下面是我的代码。

var express = require('express');
var app = express.createServer();

app.use(express.staticProvider(__dirname + '/public'));

app.get('/', function(req, res) {
    res.render('index.html');
});

app.listen(8080, '127.0.0.1')

我在这里错过了什么?


答案 1

你可以让玉包含一个普通的HTML页面:

在视图/索引.玉

include plain.html

(views/plain.html)

<!DOCTYPE html>
...

和应用程序.js仍然可以只渲染玉石:

res.render(index)

答案 2

其中许多答案已经过时了。

使用 Express 3.0.0 和 3.1.0,以下工作原理如下:

app.set('views', __dirname + '/views');
app.engine('html', require('ejs').renderFile);

有关 express 3.4+ 的替代语法和注意事项,请参阅下面的注释:

app.set('view engine', 'ejs');

然后,您可以执行如下操作:

app.get('/about', function (req, res)
{
    res.render('about.html');
});

这假定您在子文件夹中有视图,并且已安装节点模块。如果没有,请在 Node 控制台上运行以下命令:viewsejs

npm install ejs --save