AWS Lambda(node.js)でテンプレートエンジンのhandlebars.jsの使い方

AWS Lambda(node.js)でテンプレートエンジンのhandlebars.jsの使い方

Lambda(node.js)でテンプレートエンジンを使いたい時があったのでhandlebars.jsを選定して使ってみました。

インストールします。

メールやプッシュ通知の一斉送信などをテンプレートを使って使用したい時に便利かもしれません。

使用例です。

const handlebars = require('handlebars')
const obj = {
title: '初めまして',
body: '私の名前は{{name}}です.年齢は{{age}}です.'
}
const replace = {
name: '高橋',
age: 16
}
// compileメソッドには文字列を渡す
const data = handlebars.compile(JSON.stringify(obj))(replace)
console.log(ret) // {"title":"初めまして","body":"私の名前は高橋です.年齢は16です."}

view raw
gistfile1.txt
hosted with ❤ by GitHub

テンプレートファイルを作成する

テンプレートファイルを別に配置して、読み込ませます。

index.js

const handlebars = require('handlebars')
const fs = require('fs')
exports.handler = async (event, context) => {
const replace = {
name: '高橋',
age: 16
}
const text =fs.readFileSync('./template.tpl').toString('UTF-8')
const data = handlebars.compile(JSON.stringify(text))(replace)
return {
statusCode: 200,
headers: event,
body: data
}
}

view raw
gistfile1.txt
hosted with ❤ by GitHub

template.tpl

{
title: '初めまして',
body: '私の名前は{{name}}です.年齢は{{age}}です.'
}

view raw
gistfile1.txt
hosted with ❤ by GitHub

オンラインで確認

テンプレート変換を、テンプレート、インプットを入力してオンラインで確認することが出来ます。

ビルトインヘルパー(if)

https://handlebarsjs.com/examples/builtin-helper-if-block.html

ビルトインヘルパー(each)

https://handlebarsjs.com/examples/builtin-helper-each-block.html

公式サイト:https://www.npmjs.com/package/handlebars

スポンサーリンク
  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存
スポンサーリンク

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA