Express-Handlebars визуализировать файл в div - PullRequest
0 голосов
/ 10 сентября 2018

Я получаю путь к файлу с моего сервера NodeJs. Например

  • файлы / тексты / aMarkdownFile.md

  • файлы / изображения / bigImage.jpg

  • файлы / тексты / aTextFile.txt

и я хочу отобразить содержимое этого файла в моем элементе управления Handlebars

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

Как я могу это сделать? Например, Github может отображать файлы уценки и изображения в представлении хранилища. Вы можете посмотреть здесь https://github.com/thenativeweb/wolkenkit (просто пример). Если нет другого способа, кроме создания кода для каждого типа файлов, я хочу сосредоточиться на markdown файлах.

Сервер берет путь к файлу и отправляет его в шаблон руля. Как сделать так, чтобы шаблон отображал файл в контейнере div?

1 Ответ

0 голосов
/ 10 сентября 2018

Вам нужно использовать nodejs, чтобы прочитать содержимое файла в строку, а затем передать это в шаблон вашего руля.

Есть два способа сделать это, первый (и самый простой) будет использовать fs.readFile или fs.readFileSync для чтения содержимого файла, а затем передать это значение requestedFile.

Второй способ - создать помощника handlebars , этот помощник может использовать путь к файлу, а затем использовать fs.readFile / fs.readFileSync для внутреннего использования, как указано выше. Разница здесь в том, что ваш слой представления будет читать и возвращать файл. Это полезно, если вы хотите использовать все это в своем приложении, если оно находится в одном месте, то, возможно, создание помощника - это излишне. Вот документация для создания помощника руля .

В любом appraoch, вам нужно будет передать строку в шаблон, это просто, если вы делаете это из смещения, или если вы заставляете руль решить эту проблему за вас.

...