Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js div中的快速把手渲染文件_Node.js_Express_Handlebars.js_Markdown_Express Handlebars - Fatal编程技术网

Node.js div中的快速把手渲染文件

Node.js div中的快速把手渲染文件,node.js,express,handlebars.js,markdown,express-handlebars,Node.js,Express,Handlebars.js,Markdown,Express Handlebars,我从NodeJs服务器获取一个文件路径。比如说 文件/text/aMarkdownFile.md 文件/images/bigImage.jpg 文件/text/aTextFile.txt 我想在我的Handlebars div中呈现这个文件内容 <div id="renderedFileContainer"> {{requestedFile}} </div> {{requestedFile}} 我该怎么做?例如,Github能够

我从NodeJs服务器获取一个文件路径。比如说

  • 文件/text/aMarkdownFile.md

  • 文件/images/bigImage.jpg

  • 文件/text/aTextFile.txt

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

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

{{requestedFile}}
我该怎么做?例如,Github能够在repository视图中显示标记文件和图像。你可以看看这里(只是一个例子)。如果除了为每种文件类型创建代码之外没有其他方法,那么我想重点关注标记文件


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

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

有两种方法,第一种(也是最简单的)是使用
fs.readFile
fs.readFileSync
读取文件内容,然后将其作为
requestedFile
的值传递

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


在这两种方法中,您都需要向模板传递一个字符串,这取决于您是从偏移量传递字符串,还是让车把为您解析字符串。

对不起,但当我得到一个包含此内容的降价文件时,它将在文档中打印
。不是标题。您没有在问题中指定要将标记呈现为HTML的任何内容。如果要这样做,还需要通过md->html转换器运行提取的标记。有许多用于此的模块,包括前端和后端。如果你想在服务器端做这件事,我推荐一些类似决战的东西。您可以推入提取的md,然后您将得到一个HTML结果,您可以将其推入。但是你需要使用把手。安全绳。如果您不首先对输入进行消毒,则会让您的用户面临大量攻击,请对此非常小心。