写HTML文件与变量插入?



每次脚本运行时,我试图生成一个生成随机数的HTML文件。我的rawHTML显然是错的,有什么建议吗?

makeHTML.js

fs = require('fs');
util = require('util');
writeFile = util.promisify(fs.writeFile);
number = Math.floor(Math.random() * 100);
let rawHTML = '<html>
<body style="color: white; background: black; width: 512px;">
<script>
var ranNum = number;
document.write ("<br/>TestText: ", ranNum);
</script>
</body>
</html>';
fn = async () => { await writeFile('finalHTML.html', rawHTML); }
fn()

更有效的解决方案是通过包(pug/ejs)呈现发送的文件。

的例子:server.js

const express = require('express');
const app = express();
let number = Math.floor(Math.random() * 100);
app.get('/path', function(req, res) {
res.render(__dirname + 'directry/example.ejs', { number }); // Render your EJS file with the number included
});

然后在您的example.ejs文件:

<html>
<body style="color: white; background: black; width: 512px;">
<!-- Some HTML code -->
<div>TextTest: <%= number %></div> <!-- define your number -->
</body>
</html>

引用:

  • 表达文档
  • <
  • EJS文档/gh>

你可能想多了。由于已经使用了服务器端代码来生成数字,因此根本不需要客户端代码来执行任何操作。只要把数字放在你的字符串里。例如:

let rawHTML = `<html><body style="color: white; background: black; width: 512px;"><br/>TestText: ${number}</body></html>`;

最新更新