Skip to main content

Helper

Є можливість створення хелперів. Вони використовуються для зручного виклику функцій та отримання їх результату в шаблонах.

Приклад створення

  • Створюється окремий файл (функція), шлях до якого вноситься до index файлу
['escapeQuotes', (...opt2) => require('./EscapeQuotes')(...opt2)],
// Нижченаведений хелпер оброблює строку для запобігання sql вразливості
module.exports = function escapeQuotes({
data,
}) {
return data.replace(/'/g, "''");
};
  • Хелпер викликається в шаблонах:
{{{translit "Верифікувати"}}} // Veryfikuvaty

Параметри:

На прикладі contentList, можна отримувати наступні параметри:

НазваОпис
dbІнфоромація про базу даних, до якої відбувається підключення, про її наявні таблиці та ін.
rclientДані про підключення redis та функції (getAsync, іsetAsync та ін.)
pgПриходять параметри бази даних, включаючи порт, хост та користувача. Також містить різні функції. Найбільш використовувані з них - pg.one(), pg.many(), pg.query() - надають можливість виконувати запити в базу
__objТак само приходять параметри з json таблиці шаблону, також дані про користувача, його групи. Дані з setting(app, log, map, core, lang, site, security,s3storage та ін.)
rootІнформація про користувача та ін (як в __obj)
optПриходять всі параметри наявні в json таблиці шаблону
_idПриходить PK об'єкту
sidПриходить sid (1 чи 35)
funcsДля виклику функцій з ноди

Тести для хелперів

  • З використанням handelbars:
const { hbSync } = require('../../service/config/initHB');

describe('formatNumber', async () => {
it('ok', async () => {
const data = await hbSync.compile('{{{formatNumber \'56480\'}}}')({});
assert.equal(data, '56 480.00');
});
});
  • Прямо передаючи необхідні параметри:
const ifCond = require('../../module/core/handlebars/helper/ifCond');

const options = { fn: () => '1', inverse: () => '2' };
const __obj = {};

it('!=', () => {
assert.equal(ifCond({ options, __obj, args: ['1', '!=', '1'] }), '2');
});

Ознайомитися з наявними хелперами можна за посиланням: https://docs.softpro.ua/dev1/dev/development/template/helper