Server
пошел читать что такое SNI 🙂
TLS уже усе? http://expressjs.com/en/advanced/best-practice-security.html#use-tls
Andrew Kiselev
TLS уже усе? http://expressjs.com/en/advanced/best-practice-security.html#use-tls
нет, еще актуально. Запускаю для разработки в docker-compose с nginx, по аналогии https://github.com/gilyes/docker-nginx-letsencrypt-sample
Виталий
@electron_ru
спасибо
Таймураз
Andrew Kiselev
TLS уже усе? http://expressjs.com/en/advanced/best-practice-security.html#use-tls
для прода буду использовать aws certificate center на load balancer
Andrew Kiselev
опять застрял с докером и портами 🙂
Server
@eclipticwld знаю что вы и React Native / Apollo / Graphql и рекомендовали мне GraphCool Очень близкий мне стек технологий, а сервер у вас на чем?
Andrew Kiselev
@eclipticwld знаю что вы и React Native / Apollo / Graphql и рекомендовали мне GraphCool Очень близкий мне стек технологий, а сервер у вас на чем?
Docker, express, graphql, relay - основные составляющие сервера. Это проект, который делаю последнее время
Vadim
Народ, как мне настроить express сервер, что б он на любой роут отдавал один и тот же html, но что б при этом корректно подгружались все css и js?
Vadim
Просто попробовал так: app.use(express.static(__dirname + '/public')); app.get('*', function(req, res){ res.sendfile(__dirname + '/public/index.html'); }); И он стал отдавать index.html в том числе и для любого запроса css/js
Vadim
Мне это нужно для SPA
Vadim
Что б можно было перегрузить страницу вне зависимости от того на каком роуте ты находишься
Vadim
И при этом отдался тот же самый индексный файл
сomorsiс
кинь структуру проекта
сomorsiс
по идее css должен был отдаваться в app.use(...)
Arthur
Проблема в пути в статике
Vadim
Вот как выглядит весь файл: const express = require('express'); const http = require('http'); const path = require('path'); const publicPath = path.resolve(__dirname, '..', 'public'); const app = express(); const port = 3000; app.use(express.static(publicPath)); app.all(/.*/, (req, res) => res.sendFile(`${publicPath}/index.html`)); http.createServer(app).listen(port, function() { return console.log(`Server is running on port ${port}`); });
Arthur
По какому адресу запрашиваешь CSS
Vadim
Вся статика лежит в одной папке
Vadim
public
Vadim
В той же что и html
сomorsiс
а если уберешь app.all(/.*/.... index.html раздается?
Ilya
У кого есть +- крупные проекты на ноде с транзакциями и прочем на гитхабе? Дайте линк, я хочу посмотреть код
Arthur
В той же что и html
Какой URL запроса CSS файла
Vadim
Упс! Сорри! Оказывается что это только в FF не работает почему-то )
Vadim
Видимо кэш
Vadim
Сейчас покопаюсь )
Vadim
Хотя нет ( Везде херня (
Arthur
Какой URL запроса CSS файла
Vadim
Вот по какому адресу запрашивается js http://localhost:3000/contacts/bundle.1e5db4b8b872e8865731.js
Vadim
css пока нету у меня
сomorsiс
лол
Arthur
Тогда статика другая
Vadim
На js отдается тот же самый index.html
Arthur
Почитай доку
Vadim
А, тут оказывается не учитываются вложенные роуты )
Arthur
app.use('contacts', express.static(...) );
Vadim
Короче, описанный вами выше метод работает для любого роута 1 уровня
Vadim
А если произвольная глубина вложенности?
Vadim
Мне нужно что б отдавалось на любой роут любого уровня
Arthur
Хз
Vadim
что б тот же самый index.html уходил и для /some и для some/some/some
Arthur
Так и работает
Vadim
Короче, вот как работает: html действительно отдается на роут любой вложенности. А вот js отдаются только для любого роута одного уровня
Vadim
Странно почему так
Arthur
Так да
сomorsiс
логично
Vadim
Можно ли сделать так что б одно и то же правило действовало для любого уровня вложенности роутов?
сomorsiс
а нафига?
Arthur
Прописать статику ручную если только
arts
Зачем вообще статику экспрессом отдавать? Для этого nginx есть.
Vadim
а нафига?
у меня SPA, и я хочу что б при релоаде подгружался тот же самый html со всей статикой. А глубина вложенности роутов у меня, кстати, может быть и большой.
Andrew Kiselev
почему Relay а не Apollo ?
react-apollo на клиенте. На бекенде можно использовать apollo-server или express-graphql. Я взял последнее. И схему пишу в виде relay, а не apollo. Потому что 1. Решен вопрос с пагинацией. 2. Решается вопрос с кешированием
Vadim
Зачем вообще статику экспрессом отдавать? Для этого nginx есть.
Я вообще не бекендер. Мне сервак нужен только для периода разработки пока реальный бекенд пилят. Просто как заглушка что б не зависеть от бекенда
Pavel
Ищем разработчиков для SaaS проекта в сфере бронирование услуг. Сервис нужен для повременно записи на прием и включает в себя веб-часть, виджеты для сайтов, приложения для социальных сетей, а так же в будущем клиенты под iOS и Android. Что есть: Понимание конечного продукта, а также промежуточных MPV Реализованное API (NodeJS, PostgreSQL, GraphQL). Начатый frontend на React, Relay Есть один западный аналог (не совсем), на который можно равняться. Есть потенциальные клиенты, которые хотят попробовать продукт. Сейчас в команде два человека: NodeJS/React разработчик и дизайнер. Что с вас: Готовность довести проект до конца Желание самостоятельно разбираться в новых технологиях Согласие с принципами lean (в частности делать как можно меньше и быстрее) Умение работать в команде по GitFlow Предлагаемое участие - за долю от прибыли. Сори за потраченное время
Vadim
Роуты обработываютс на клиенте вроде при SPA?
Потому мне и нужно что б при релоаде (если я сам решил рефреш нажать) подгружался тот же html
Arthur
Статика отдаётся один раз при релоаде. А потом клиентская часть работает. Зачем несколько уровней вложенности?
Arthur
Статика задай абсолютный путь /assets/
Vadim
это виртуальные роуты. HTML5 pushstate
Arthur
Чтоб всегда запрашивал одну папку не зависимо от текущего урла
Vadim
Про assets
Andrew Kiselev
Сервер на Амазоне хранится?
да, в процессе настройки - это недели для того, чтобы разобраться в devOps
Dmitrii
что значит оконная пагинация?
ты можешь сразу перейти на страницу 54 из 100
Dmitrii
без кликанья next,next,next
Arthur
src="/assets/bomba.js" Вот так например
Arthur
На клиенте в HTML попробуй поставить абсолютный путь для js и CSS
Arthur
Одинаковую папку для всех