渲染基本的 HTML 视图?

新手上路,请多包涵

我有一个基本的 Node.js 应用程序,我正在尝试使用 Express 框架启动它。我有一个 views 文件夹,其中有一个 index.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')

我在这里想念什么?

原文由 aherrick 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 624
2 个回答

您可以让 jade 包含一个纯 HTML 页面:

在意见/index.jade

 include plain.html

在视图/plain.html

 <!DOCTYPE html>
 ...

并且 app.js 仍然可以只渲染玉:

 res.render(index)

原文由 Andrew Homeyer 发布,翻译遵循 CC BY-SA 3.0 许可协议

其中许多答案已过时。

使用 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');
});

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

 npm install ejs --save

原文由 Drew Noakes 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题