Nodejs 请教一下不用框架 jade 怎么使用?
Nodejs 请教一下不用框架 jade 怎么使用?
我现在用法如下:
var fn = jade.renderFile(’./tmpl/index.jade’,{
cache:true,
pretty:true
},function(err,html){
response.writeHead(200, {“Content-Type”: “text/html”});
console.log(html);
response.write(html);
response.end();
});
console.log 能正常显示,但是 页面一直在加载。 因为html里加个不存在的css,请问这种情况该怎么办呢?页面直接白屏的
另外问一下。 jade. renderFile 和 jade. compileFile 什么区别呢?
在Node.js中,不使用框架如Jade(现已更名为Pug)来渲染模板,你可以直接使用原生的Node.js模块,比如fs
(文件系统)来读取HTML文件,并通过字符串替换或模板字符串的方式动态生成内容。下面是一个简单的例子,展示如何在不使用任何模板引擎的情况下,渲染一个包含用户名称的HTML页面。
首先,创建一个简单的HTML模板文件template.html
:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Hello World</title>
</head>
<body>
<h1>Hello, {{name}}!</h1>
</body>
</html>
然后,在你的Node.js脚本中,使用fs
模块读取这个模板,并替换{{name}}
:
const fs = require('fs');
const path = require('path');
const userData = { name: 'John Doe' };
fs.readFile(path.join(__dirname, 'template.html'), 'utf8', (err, data) => {
if (err) throw err;
const rendered = data.replace('{{name}}', userData.name);
console.log(rendered); // 或者 res.send(rendered) 如果你在Express中使用
});
这种方法虽然简单直接,但不适合复杂的模板逻辑。对于更复杂的场景,建议使用专门的模板引擎如Pug、Handlebars或EJS,它们提供了更强大和灵活的模板处理能力。