Доброго времени суток!
Перехожу с ASP.NET на Node.js. На Node.js API все оказалось намного проще чем в ASP.NET но вот фронтенд сайта вызывает неопределенность. Очень много пакетов на котором все делают сайты к примеру express но мне нужно именно на fastify тк api была написана на нем и не хочется плодить основные библиотеки. В гугле не нашел ни одного примера сайта на fastify. И не очень понятна структура сайта на Node.js.
Как я понимаю express,fastify и прочие это основная часть приложения которая руководит всеми движениями проекта(роутинг, коннект, логика). И к нему подключаются отдельные модули в зависимости от цели. Если все верно, какая самая простая связка для реализации сайта вроде лендинга? Если есть ссылки на гайды или советы буду очень благодарен!
Не имею опыта работы с .NET, поэтому не могу приводить аналогий.
Для разработки фронта есть 2 пути:
view Для лендинга лучше подойдет вариант с шаблонизатором, рассмотрим его.
Для начала подключаем модуль рендеринга point-of-view через npm: npm install point-of-view --save
Он поддерживает следующие шаблонизаторы:
При регистрации модуля указывается выбранный шаблонизатор, приведу пример из репозитория:
const fastify = require('fastify')()
fastify.register(require('point-of-view'), {
engine: {
ejs: require('ejs') // подключаем шаблонизатор ejs
}
})
fastify.get('/', (req, reply) => { // при GET запросе /
reply.view('/templates/index.ejs', { text: 'text' }) // рендерим view index.ejs и пробрасываем туда переменную text со значением "текст"
})
Как правило, у каждого шаблона свой синтаксис, нужно будет посмотреть каждый и подобрать по вкусу.
В дополнение рекомендую прочитать Node.js Best Practices
Продвижение своими сайтами как стратегия роста и независимости