Express-Handlebars渲染div中的文件

时间:2018-09-10 07:29:19

标签: node.js express handlebars.js markdown express-handlebars

我从NodeJs服务器获取文件路径。例如

  
      
  • 文件/文本/aMarkdownFile.md

  •   
  • 文件/图像/bigImage.jpg

  •   
  • 文件/文本/aTextFile.txt

  •   

我想在Handlebars div中渲染此文件内容

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

我该怎么做?例如, Github 可以在存储库视图中显示降价文件和图像。您可以在这里https://github.com/thenativeweb/wolkenkit(仅作为示例)。如果除了为每种文件类型创建代码外别无其他方法,我想重点关注 markdown 文件。

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

1 个答案:

答案 0 :(得分:0)

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

有两种方法,第一种(也是最简单的方法)是使用fs.readFilefs.readFileSync读取文件内容,然后将其作为{{ 1}}。

第二种方法是创建一个handlebars helper,该帮助程序可能会占用一个文件路径,然后如上所述在内部使用requestedFile / fs.readFile。此处的区别在于您的视图层将读取并返回文件。如果您要在整个应用程序中都使用它,这很有用,如果它只是放在一个地方,那么做一个助手可能就显得过头了。 Here is the documentation for creating a handlebars helper

在任何一种情况下,您都需要将字符串传递给模板,这仅是从偏移量开始执行,还是由车把为您解决。