node.js - Express-Handlebars 在 div 中渲染文件
问题描述
我从我的 NodeJs 服务器获得了一个文件路径。例如
文件/文本/aMarkdownFile.md
文件/图像/bigImage.jpg
文件/文本/aTextFile.txt
我想在我的 Handlebars div 中呈现这个文件内容
<div id="renderedFileContainer">
{{requestedFile}}
</div>
我怎样才能做到这一点?例如,Github能够在存储库视图中显示降价文件和图像。您可以在这里查看https://github.com/thenativeweb/wolkenkit(只是一个示例)。如果除了为每种文件类型创建代码之外别无他法,我想专注于降价文件。
服务器获取文件路径并将其发送到车把模板。如何使模板在 div 容器中呈现文件?
解决方案
您需要使用 nodejs 将文件内容读入字符串,然后将其传递给您的车把模板。
有两种方法可以做到这一点,第一种(也是最简单的)是使用fs.readFile
或fs.readFileSync
读取文件的内容,然后将其作为requestedFile
.
第二种方法是创建一个把手助手,这个助手可以使用文件路径,然后在内部使用fs.readFile
/fs.readFileSync
如上所述。这里的区别在于您的视图层将读取并返回文件。如果您想在整个应用程序中使用它,这很有用,如果它只是在一个地方,那么制作一个助手可能是矫枉过正。这是创建车把助手的文档。
在任何一种方法中,您都需要将一个字符串传递给模板,这只是您是否从偏移量执行此操作,或者是否让车把为您解析它。
推荐阅读
- c# - 如何在 Redis 中创建持久票证
- macos - 是否可以在双击期间抑制单击事件?
- c++ - 进行如此复杂的 C++ 类设计的目的是什么?
- jsonschema - 即使缺少必填字段,Rapidjson 也会成功验证
- python - 在 Pandas DataFrame 中的 Python 中以毫秒为单位将 UTC 时间转换为纪元的有效方法
- java - javers MANAGED_CLASS_MAPPING_ERROR
- javascript - 访问慢页面时立即反馈
- javascript - 将 Worker 线程与 WordPress Nonce 一起使用(自定义 wp-api 端点)
- python-3.x - 缺少轴标签
- mongodb - 无法使用 mongorestore 将 BSON 数据恢复到 cosmos 集合中