𝓖0𝓹43𝓡
Почему скрипт останавливает выполнение на civicClient.exchangeCode(jwtToken) ?
ilya
протупил
ilya
все разобрался похоже
ilya
я так и думал
ilya
токен левый
ilya
потому не жрет
ilya
спасибо
𝓖0𝓹43𝓡
Не за что
ilya
catch это типа except?
Eldar
@ilyakmet почти, кроме тех случаев когда промис не отработал then по нормальным логическим причинам, и catch просто поймал rejection
ilya
понял
Node.js releases
Node v4.8.7 (Maintenance) https://nodejs.org/en/blog/release/v4.8.7
Node.js releases
Node v6.12.2 (LTS) https://nodejs.org/en/blog/release/v6.12.2
Node.js releases
Node v8.9.3 (LTS) https://nodejs.org/en/blog/release/v8.9.3
Node.js releases
Node v9.2.1 (Current) https://nodejs.org/en/blog/release/v9.2.1
Дима
Ребят подскажите почему у меня при обращении к переменной модуля выводит одно и тоже значение с полученного рандомного json API. Пример:
Дима
const axios = require('axios'); let content = ''; axios.get(`https://icanhazdadjoke.com/slack`) .then(function (res) { content = res.data.attachments[0].text; module.exports.content = content; }) .catch(function (error) { console.log(error); });
Дима
В приложении вызываю module.exports.content
Дима
Выводиться одна и та же строка
Дима
Ожидаю случайный ответ от данного API
Тимофей 🛴
Ожидаю случайный ответ от данного API
Так и делай запрос каждый раз
Дима
Что нужно сделать чтобы при вызове переменная обновлялась при обращении к axios.get
Тимофей 🛴
А ты один раз записал результат запроса и все
Дима
Да, я уже понял. Но не знаю как обернуть так чтобы вернул значение
сomorsiс
верни функцию, которая будет возвращать промис с ответом
сomorsiс
module.exports.giveMeStr = () => axios.get(``)
Дима
Пробую так:
Дима
module.exports.giveMeStr = () => axios.get(`https://icanhazdadjoke.com/slack`).then( (res) => res.data.attachments[0].text);
Дима
Нет ответа
Дима
Данные я вызываю из этого модуля под именем:
Дима
const history = require('./bot_modules/history');
Дима
И вызываю так:
Дима
bot.onText(/\/history/, (msg) => { const chatId = msg.chat.id; bot.sendMessage(chatId, history.giveMeStr()); });
сomorsiс
не
сomorsiс
вызывай как history.giveMeStr() .then(joke => bot.sendMessage(chatId, joke))
Дима
Вот блин спасибо )
Дима
Что то я совсем не задумался про вынесение промиса в сам реквест
Дима
Да, теперь ответы рандомные, все ок
Nikita
а нода умеет async/await дебажить?
V
естессно
Nikita
тогда проблема в bluebird или vscode? А может я аргументы нужные не дал? Мне просто проект упал, а я ради интереса взял, все же с нодой не работал, только фронт. Там sails.js v1+, и при попытке задежабить async/await,а у меня куда-то хз куда проваливается и не могу вылезти. Проваливается в bluebird. При этом я не понимаю, откуда он и что он сделал с моими промиссами (ублюдок такой).
Nikita
по доке написано, что с 1 версии используется нативные промиссы
сomorsiс
Смотришь пекедж лок
сomorsiс
Кто подцепил
Nikita
package.log?
сomorsiс
Package-lock.json
Nikita
у меня ярн
сomorsiс
Ну ярн лок
Nikita
а, ты про команду why?
Nikita
ну адаптер и orm используют его
Dmitrii
когда пишите веб приложения на ноде, используете ли подход выноса бизнес логики в слои, которые ничего не знают про http и могут рабоать с любыми интерфейсами, либо все пилите сразу и только на уровне http в контроллерах?
?
логика в контроллерах это только если там один контроллер на коленке
?
какой-нить сферический 3-layer так вообще по-умолчанию обычно
Anonymous
Смотря какая бизнес логика. Есть вещи которые могут существовать не только на сервере, а есть такая логика которая напрямую от хттп зависит
?
то что напрямую зависит от хттп обычно не является бизнес-логикой - хттп для того же реста это просто транспорт
Anonymous
Мидлворь которые берёт юзера из сессии и не пускает запрос дальше в зависимости от ролей по твоему не бизнес логика?
Anonymous
Хотя и это можно обыграть, да
?
нет, это не бизнес логика
Dmitrii
та же проверка ролей может быть как на уровне роуты так и глубже в сервисе
Dmitrii
как и валидация итд
?
во всяком случае в идеале не самопальная а какой-нить готовый оаус или адфс
Dmitrii
только проблема, делая кучу слоев, приходится заморачивать и за их взаимодействие, грубо говоря какой то протокол
?
да в общем-то даже контроллеры это не про хттп, а скорее про мвц которое не обязательно должно вообще в веб упираться
Dmitrii
контроллеры имеют проблему что они привязанны к специфичному интерфейсу, в случае с http это путь, метод, query, body
Dmitrii
да проблема в той тонкости чтобы не оверинжинирить, т.к все можно разбить на 100500 слоев и ответственностей
?
да проблема в той тонкости чтобы не оверинжинирить, т.к все можно разбить на 100500 слоев и ответственностей
роль контроллера - понять куда/как перенаправить вызов, там логики по определиню не должно быть кроме понимания что дернуть в другом месте
Dmitrii
ну а валидация это к примеру не логика?
Anton
использовать валидацию мб можно, а логика валидации должна быть отдельно
?
ну а валидация это к примеру не логика?
декораторы/сервисы. Зачем это держать в самом контроллере?
Dmitrii
ну по хрошему валидация нужна на каждом уровне, т.к параметры контроллера и сервиса могут отличаться и скорее всего будут
Anonymous
Привет всем
Anonymous
Извините за эту ссылку но хотел бы вас к себе на канал пригласить ечли не заприщаете буду заливать много полезной информаций на канал приходите в гости t.me/Inovation
Anonymous
Жаль а правыла где?
倫太郎
Жаль а правыла где?
В учебнике по грамматике
Anonymous
Правила ?
倫太郎
Правила ?
Правила