使用 nodejs Express 渲染带有数据的 html

Posted

技术标签:

【中文标题】使用 nodejs Express 渲染带有数据的 html【英文标题】:Rendering html with data with nodejs Express 【发布时间】:2016-09-23 11:14:27 【问题描述】:

我是表达框架的新手,我只想知道如何使用来自 mongo DB 的一些数据来呈现 html 页面,我使用下面的代码发送 html,但不知道如何发送一些数据

res.sendFile(path + "feature.html"); this is success as html get renders 

这样发送数据??

res.sendFile(path + "feature.html", data: data);

如何在html中显示数据??如果我发送了这样的数组

res.sendFile(path + "feature.html", data: []);

如何在 html 中循环这个??

【问题讨论】:

【参考方案1】:

我建议你使用一些模板引擎,比如ejs 或jade。这个表单,可以使用res.render,发送json信息查看。有关更多详细信息,请参阅引擎文档和res.render 文档。

【讨论】:

【参考方案2】:

如果你需要在 node.js express 上渲染一个 html 页面,你需要安装任何一个模板引擎,比如 ejs 或jade,并设置视图目录。 使用 npm 安装 ejs 的代码是,

npm install ejs --save

在您的 app.js 文件中包含以下代码将解决您的问题。

var bodyParser = require('body-parser');
var express = require('express');
var app = express();

app.use(express.static(__dirname + '/'));
app.use(bodyParser.urlencoded(extend:true));
app.engine('html', require('ejs').renderFile);
app.set('view engine', 'ejs');
app.set('views', __dirname);

app.get('/', function(req, res)
    res.render("index");
);

【讨论】:

将此行编辑后app.set('view engine', 'html'); 改为app.set('view engine', 'ejs'); 运行正常。 最好加上“数据如何通过渲染”。

以上是关于使用 nodejs Express 渲染带有数据的 html的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 NodeJS 和 Express 渲染上传的照片?

插入并放入nodeJs + express api时,带有Redux Saga的Axios不发送表单数据

nodejs的express使用介绍

nodejs的express使用介绍

Nodejs Express 用于 Web 应用程序 JWT,带有数据库或会话以验证用户身份

在带有 express-session 的 NodeJS 中使用安全 cookie 时会话不持久