我是 Node/Express 的初学者,我想使用 Jade 和 Express 来服务我的静态文件。
以前我将 Jade 与 gulp-jade 和 gulp-data 结合使用,我将能够渲染 Jade 文件并使用具有 JSON 文件的 gulp-data 来渲染每个页面。
index.jade
+ index.json
会给我一个 index.html
现在我在如何使用 Express 将外部 JSON 文件包含到 Jade 中时遇到了麻烦。
例如:
server.js
app.get('/', function(req, res){
res.render('pages/index', {pagetitle: 'Hello World'});
});
pages/index.jade
h2 #{pagetitle}
这将呈现为
<h2>Hello World</h2>
问题
我想将 {pagetitle: 'Hello World'}
替换为外部 json 文件,即 index.json。我可以这样做吗?
app.get('/', function(req, res){
res.render('pages/index', 'folder_name/index.json');
});
这肯定是错误的,对吧?
最佳答案
是的,这是错误的。这会将字符串本身设置为模型。您可能想看一下 NodeJS 的 fs
模块。这将允许您读取文件的内容。然后,您可以解析 JSON 并将生成的对象作为模型发送到您的 jade 模板。
不要忘记异步读取您的 JSON,否则您将阻止您的服务器。
https://nodejs.org/api/fs.html
下一步是创建一个模块,负责读取该文件,将其保存在内存中,并且仅在使用观察器更改时才重新加载它。
关于javascript - 如何让 Jade 的外部 JSON 从 Express 渲染?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35473025/