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