我试图将一个变量从 node.js 传递到我的 HTML 文件。
app.get('/main', function(req, res) {
var name = 'hello';
res.render(__dirname + "/views/layouts/main.html", {name:name});
});
我试图将一个变量从 node.js 传递到我的 HTML 文件。
app.get('/main', function(req, res) {
var name = 'hello';
res.render(__dirname + "/views/layouts/main.html", {name:name});
});
我发现我能够传递这样的变量
<script>var name = "<%= name %>";</script>
console.log(name);
您可以使用某种模板引擎,例如 pug(以前称为 jade)。要启用它,您应该执行以下操作:
npm install --save pug
- 将其添加到项目和 package.json 文件中app.set('view engine', 'pug');
- 在 express 中将其注册为视图引擎./views
文件夹并添加一个简单的.pug
文件,如下所示:html
head
title= title
body
h1= message
注意间距很重要!
app.get('/', function (req, res) {
res.render('index', { title: 'Hey', message: 'Hello there!'});
});
这将呈现一个 index.html 页面,其中 node.js 中传递的变量已更改为您提供的值。这直接取自 expressjs 模板引擎页面:http ://expressjs.com/en/guide/using-template-engines.html
有关 pug 的更多信息,您还可以查看:https : //github.com/pugjs/pug
我找到了可能的写作方式。
服务器端 -
app.get('/main', function(req, res) {
var name = 'hello';
res.render(__dirname + "/views/layouts/main.html", {name:name});
});
客户端 (main.html) -
<h1><%= name %></h1>
使用 res.render() 方法将变量从 node.js 传递到 html。
例子:
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', 'html');
app.set('views', __dirname);
app.get('/', function(req, res){
res.render('index.html',{email:data.email,password:data.password});
});
仅使用 Node 和 HTML,您将无法实现您想要的;这不像使用 PHP,您可以在其中执行类似的操作<title> <?php echo $custom_title; ?>
,而无需安装任何其他东西。
要使用 Node 做您想做的事,您可以使用称为“模板”引擎的东西(例如 Jade,请查看此内容)或使用 Javascript 中的一些 HTTP 请求从服务器获取数据并使用它来替换部分HTML 与它。
两者都需要一些额外的工作;在做您想做的事情时,它不像 PHP那样即插即用。