首页 > 解决方案 > Express-Handlebars 在 div 中渲染文件

问题描述

我从我的 NodeJs 服务器获得了一个文件路径。例如

  • 文件/文本/aMarkdownFile.md

  • 文件/图像/bigImage.jpg

  • 文件/文本/aTextFile.txt

我想在我的 Handlebars div 中呈现这个文件内容

<div id="renderedFileContainer">
    {{requestedFile}}
</div>

我怎样才能做到这一点?例如,Github能够在存储库视图中显示降价文件和图像。您可以在这里查看https://github.com/thenativeweb/wolkenkit(只是一个示例)。如果除了为每种文件类型创建代码之外别无他法,我想专注于降价文件。

服务器获取文件路径并将其发送到车把模板。如何使模板在 div 容器中呈现文件?

标签: node.jsexpresshandlebars.jsmarkdownexpress-handlebars

解决方案


您需要使用 nodejs 将文件内容读入字符串,然后将其传递给您的车把模板。

有两种方法可以做到这一点,第一种(也是最简单的)是使用fs.readFilefs.readFileSync读取文件的内容,然后将其作为requestedFile.

第二种方法是创建一个把手助手,这个助手可以使用文件路径,然后在内部使用fs.readFile/fs.readFileSync如上所述。这里的区别在于您的视图层将读取并返回文件。如果您想在整个应用程序中使用它,这很有用,如果它只是在一个地方,那么制作一个助手可能是矫枉过正。这是创建车把助手的文档

在任何一种方法中,您都需要将一个字符串传递给模板,这只是您是否从偏移量执行此操作,或者是否让车把为您解析它。


推荐阅读