Как вывести из mysql контент содержащий в себе html при помощи node js

Суть в названии вопроса. Подробнее... на node.js делаю запрос к БД


    const express = require('express')
    const router = express.Router()

    const pool = require('../database')

    router.get('/', async (req, res) => {
        const articles = await pool.query('SELECT * FROM k2 WHERE (c_id = 72 OR c_parent = 72) AND i_publ = 1 AND c_parent > 0')
        res.render('about-institution/about-institution', { articles })
    })

Через шаблонизатор вывожу полученные данные


    {{#each articles}}
                <div class="col-md-3">
                    <div class="card text-center">
                        <div class="card-body">
                            <a href="{{c_alias}}/{{i_alias}}">
                                <h3 class="card-title text-uppercase">
                                    {{i_title}}
                                </h3>
                            </a>
                            <p>{{i_intro}}{{i_full}}</p>
                        </div>
                    </div>
                </div>
            {{/each}}

В переменных i_intro и i_full текст с html. Проблема в том, что html выводит, как обычный текст.

Пробовал до этого выводить с использованием react, столкнулся с подобной проблемой, но думал, что это из за jsx. Подскажите как решить данную проблему (можно с/без react'a, но лучше оба варианта) P.S.: шаблонизатор handelbars, с использованием реакта изспользовал для создания проекта create-react-app


Ответы (1 шт):

Автор решения: RTW

В бд стоит хранить данные, а не html и проблем не будет. Всё что находится в квадратных скобках будет выводится как текст для безопасности.

Если же нужно вставить в реакте html, используйте dangerouslySetInnerHTML.

function createMarkup() {
  return {__html: 'Первый &middot; Второй'};
}

function MyComponent() {
  return <div dangerouslySetInnerHTML={createMarkup()} />;
}
→ Ссылка