Таймураз
Сейчас скину свой вариант отдачи статики
Таймураз
router.use('/assets/:path*', ctx => send(ctx, ctx.params.path, { root: config.dataFolder }));
A
то есть koa-send или koa-static вообще не нужен?
Таймураз
Я не помню, что мне не понравилось в готовом модуле статик, но помню, что там что-то было сделано через задницу
Таймураз
koa-send у меня используется
Таймураз
import send from 'koa-send';
Таймураз
и да, тут уже обсуждалось, пока на стороне бекэнда лучше require использовать
A
ааа вижу
Таймураз
Т.е. не делай как я)
A
да я так и делаю
A
бабелем транспайлю
Таймураз
Я тоже
И это неправильно
Таймураз
Хотя с другой стороны, код красивее выглядит
Таймураз
В общем- если чистый бекэнд, лучше require. Если фронт- webpack 2 import
Если бек с SSR- нужно готовить
A
спасибо
Матрос
ребят, почему такая хрень происходит?
Матрос
.catch(err => {
res.json({
code: 1,
'message': `error`,
'error': `${err}`,
});
})
Матрос
если я через строковый литерал пихаю ошибку - она уходит в ответ от сервера. если я просто ее интерполирую - там пустой объект вместо нее
Матрос
toJSON не помог
A
Матрос
аааа, он в строку не переводил почему-то. всем спасибо)
Таймураз
A
path.join(__dirname, '../build') ?
Таймураз
Мое решение адекватнее тем, что, как минимум, позволяет задать любой webpath и любую директорию, откуда дергать файлы
Таймураз
Да, это
A
так даже index.html не подтягивает
Таймураз
А, я не реализовал индексы)
Таймураз
Впилить легко
Чекай ctx.params.path на '/' и отдавай index.html
Petro
Как в joi убрать параметры с пустыми строками?
A
А, я не реализовал индексы)
завелось вот так:
router.get('/', async (ctx) => {
await send(ctx, ctx.path, { root: path.join(__dirname, '../build/index.html') });
});
router.get('/assets/:path*', async (ctx) => {
await send(ctx, ctx.path, { root: path.join(__dirname, '../build/') });
});
Margarita
Ребят, у меня тут вопрос будет, от совсем новичка ))
Margarita
В общем, у меня есть фронт сайта, на сайте есть форма
Margarita
Есть небольшой сервер на ноде, который слушает порт и который получает данные из формы
Yaroslav 🇺🇦
Маргарита, у меня тоже вопрос. Зачем вам програмирование?)
Margarita
Чего я не могу понять (я извиняюсь заранее за тупость вопроса): как мне на локальной машине запустить фронт и собственно сервер, чтобы оно все вместе заработало?))
Margarita
На данный момент я собираю фронт галпом и запускаю в браузере через браузер синк на 3000 порту
Aleksey
Margarita
Код будет приблизительно вот такой: https://ru.stackoverflow.com/questions/477533/%D0%9A%D0%B0%D0%BA-%D0%BF%D0%B5%D1%80%D0%B5%D0%B4%D0%B0%D1%82%D1%8C-%D0%B8-%D0%BF%D1%80%D0%B8%D0%BD%D1%8F%D1%82%D1%8C-%D1%84%D0%BE%D1%80%D0%BC%D1%83-%D0%BD%D0%B0-%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80-node-js
Margarita
Свой вариант я пишу)
Таймураз
Margarita
Прикольно
Margarita
А это примерно как? xD (я вообще FE, которому по несчастливой случайности приходится написать кусок бека, а я как-то не очень умею)
Таймураз
FE?
A
front-end поди
Таймураз
А, тьфу
Yaroslav 🇺🇦
Фронт на чем написан, как обращается к серверу?
Таймураз
Да, торможу
Konstantin
зачем прокся? повесить их на разные порты и юзать
Aleksey
https://expressjs.com/en/starter/static-files.html
Таймураз
Margarita
Он никак не обращается к серверу, в форме есть такая штука: action="/form_handler"
Konstantin
https в локальной разработке? серьёзно?
Таймураз
Margarita
Больше у меня никакого бека нет, мне надо только отправку формы организовать
Władimir (Zae)
если на локалке то нафига nginx? че за бред? почему просто статику не отдавать по рутам?
Yaroslav 🇺🇦
Таймураз
Margarita
Не, у нас тупо нет бека почти, я маленький сайт для коммерческой организации пилю)
Margarita
Мне надо как-то наладить отправку формы и на этом все
Таймураз
Таймураз
localhost:3000/path/to/action
Konstantin
только не 3000, там gulp c фронтом
Margarita
Почему не 3000, браузер синк же запускает на 3000
Władimir (Zae)
там галп
Zaur
народ, как в nginx в
location ~ ^/project/ {
указать шаблон все пути начинающиеся на /project/ кроме тех что начинаются на /project/f/ ? что то у меня регулярками не получилось
Evgeny
сделай два локейшна
Konstantin
^[f]
Evgeny
не надо учить плохому
Zaur
я так понял в первом локейшине надо прописать proj/f и сделать так, чтобы дальше обработка не шла?
Konstantin
попросили регулярку)
Evgeny
Так надо сказать как сделать, а не как поглубже в жопу руки засунуть
Zaur
попросили регулярку)
я не просил) я сказал что я пробовал и у меня не получилось :) я не знаю как правильно
Evgeny
омг.
Evgeny
location /project/f/
location /project/
Evgeny
Откуда у разработчиков любовь всё делать КАКМОЖНОСЛОЖНЕЕ
Konstantin
я не разраб если чо)