AWS лямбда-редактор HTML-шаблон с данными из DynamoDB

Я пытаюсь вставить данные, извлеченные из базы данных DynamoDB, в шаблон HTML, который хранится на S3 (по сути, заполнение пробелов в форме HTML). Я не очень хорошо разбираюсь в JavaScript, поэтому не совсем уверен, с чего начать.

До сих пор я был в состоянии извлечь HTML-документ из S3 и преобразовать его в строку UTF8... что, возможно, не является необходимым, но я просто практиковался в разговоре с S3 с помощью Lambda.

Нужно ли использовать стороннюю библиотеку, чтобы в HTML содержались переменные, которые я могу изменить? Или я могу как-то просто изменить внутренний HTML-код идентификатора ссылки?

Любая помощь будет принята с благодарностью!

РЕДАКТИРОВАТЬ: Основная цель здесь заключается в том, чтобы взять пользовательский ввод (сохраненный в DynamoDB), заполнить пробелы в форме HTML и преобразовать HTML в документ PDF.

Если кто-то может придумать лучший способ добавить пользовательский ввод в текстовый шаблон, а затем преобразовать его в PDF, я открыт для любых предложений!

Спасибо

1 ответ

Решение

Для вашего случая использования было бы более структурированным и обслуживаемым использовать легкую библиотеку шаблонов HTML.

Например, используя Lodash.js, вы можете сделать следующее.

_.template([string=''], [options={}])

Здесь вы можете определить переменные в html-файле со следующей разметкой, а затем прочитать содержимое файла и связать его с данными, полученными из DynamoDB, в качестве параметров для возврата окончательной строки HTML, которую вы можете сохранить обратно в файл в S3.

<div>
    <h1>My name is <%- name %></h1>
    <p>I like <%- hobbies %> but hate being a <%- occupation %></p> 
</div>

var filledHTML = _.template("HTML string'', { name: "John", hobbies: "Reading", occupation: "developer"})

Примечание: используйте lodash.template npm для вашей лямбды.

npm i --save lodash.template
Другие вопросы по тегам