Evgeny
16.08.2017
09:59:35
А с шардингами\репликой ты работал? есть там неочевидные подводные камни?
KlonD90
16.08.2017
10:00:40
Реплику мне поднимал чувак с мыла. Ну основная проблема отсутствие синхронного мастер мастера
Там асинхронный мастер мастер. Шардинг библиотекой представлен. Но вроде работает ОК.
Evgeny
16.08.2017
10:02:40
ОК, спасибо большое, поковыряю дальше сам.
Google
KlonD90
16.08.2017
10:02:49
Вот на медиазоне база дико маленькая шардинг не нужен как и винил
Все в мемори
Max
16.08.2017
10:48:48
Народ а кто знаком с go или elixir/erlang, может знаете насколько эффективна система горутин и процессоров на одноядерном vps? Просто у меня есть подозрение что на одноядерном процессоре event-loop ноды будет эффективней других схем вытесняющей многозадачности
Geralt
16.08.2017
10:50:27
Доброго времени суток всем,кто нибудь сталкивался с
node:55666) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): ReferenceError: res is not defined
[?] (node:55666) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
На экспрессе,при обертывание в обработку ошибок не узнаёт res,если не вставлять обработчик выдаёт
Users/__id0/Desktop/Projects/Store/node_modules/express/lib/router/route.js:202
[?] throw new Error(msg);
[?] ^
[?]
[?] Error: Route.get() requires callback functions but got a [object Promise]
код хандлера
exports.catchErrors = (fn) => {
return function(req, res, next) {
return fn(req, res, next).catch(next);
};
};
код роута
router.get('/stores/test', catchErrors(GitHub.getProfileBlog('get')))
Код метода в классе
static async getProfileBlog(usernameToSearch) {
const searchURL = "/" + usernameToSearch;
const commonData = await GitHub.request(searchURL);;
const firstSearchResult = commonData;
const profileURL = "/users/" + firstSearchResult;
console.log(commonData)
// res.json(commonData)
res.render('index', {title: commonData['origin'], name: req.name })
// Make this work from more efficient
}
}
Alex
16.08.2017
11:12:58
привет
всем
Nikita
16.08.2017
11:13:28
ну откуда ему знать
Alex
16.08.2017
11:13:34
есть проблема, сделал парсер старого сайта так как там неструктурированный материал
и как только он парсит
сайт ложится
Nikita
16.08.2017
11:14:02
catchError у тебя пускает три параметра в getProfileBlog, а в самом getProfileBlog ты ожидаешь только usernameToSearch, который на самом деле req
Google
Alex
16.08.2017
11:14:02
как эту проблему можно обойти?
Nikita
16.08.2017
11:14:12
у тебя тупо нет res в getProfileBlog
Geralt
16.08.2017
11:22:11
хотя другие методы проходят
exports.createStore = async (req, res) => {
const store = await (new Store(req.body).save())
req.flash('success', `Store succesfull added ${store.name}. Care to leave a review?`)
res.redirect(`/stores/${store.slug}`)
}
router.post('/add', catchErrors(storeController.createStore))
KlonD90
16.08.2017
11:27:50
Dmitry
16.08.2017
12:05:08
dima
16.08.2017
12:07:11
юзает кто orm Sequelize ? Может для начало просто чистый драйвер юзнуть?
KlonD90
16.08.2017
12:10:26
конечно
просто калбэк не передаешь
а сразу then
dima
16.08.2017
12:14:41
а сразу then
это в секвалайз? О круто. А асинк аваит она понимает? А то с чистым драйвером пока поэксперементирую. Там помогет util.promisify() )
KlonD90
16.08.2017
12:15:12
в чистом драйвере тоже должны быть промисы давно
(хз где их вообще нету сейчас разве что в основной библиотеке ноды почему кстати еще нет? @ChALkeR )
dima
16.08.2017
12:18:28
KlonD90
16.08.2017
12:18:40
от postgresql?
dima
16.08.2017
12:19:29
mysql модуль
Google
Никита
16.08.2017
12:20:39
Vladimir
16.08.2017
12:21:26
Да я то вообще за кардинальное обновление АПИ
Никита
16.08.2017
12:21:52
Я про п.3 тебя кастанул =)
Ты там более в курсе должен быть по нему, чем я.
Я про https://github.com/nodejs/post-mortem/issues/16
Vladimir
16.08.2017
12:22:56
А, да я считаю что пост мортем важен очень малому числу людей
Никита
16.08.2017
12:23:30
А я считаю, что если промисы его ломают, то он уже сломан, и смысла тянуть нет.
Vladimir
16.08.2017
12:23:58
Именно, те кто его хочет, могут просто не использовать промисы
Никита
16.08.2017
12:24:05
Не могут.
Промисы в экосистеме везде уже.
Vladimir
16.08.2017
12:24:27
Ну экосистему тоже можно не использовать
Никита
16.08.2017
12:24:36
А, ну да, конечно =)
KlonD90
16.08.2017
12:26:11
понял что нет
Ок
Никита
16.08.2017
12:28:10
Vladimir
16.08.2017
12:29:09
Ну если кто то хочет пост мортем, то он не тянет ничего на промисах, или тянет, но понимает что ошибки оттуда могут проглатываться
В основном людей все таки интересуют ошибки в их коде
Никита
16.08.2017
12:31:32
Vladimir
16.08.2017
12:32:08
Стримы это отдельная история. Они ужасны во всем
Google
Никита
16.08.2017
12:32:19
Но лично я этим заниматься, к сожалению, не планирую.
А для стримов в жс теперь есть фор авейт.
Но он пока не прилетел.
И стримы переделывать без него нет смысла.
Evgeny
16.08.2017
12:32:50
Maxim
16.08.2017
12:33:02
Pug JS кеширует рендер страницы, если использовать с Express например?
Никита
16.08.2017
12:33:25
Vladimir
16.08.2017
12:33:31
Хз. Есть whatwg стримы, но надо смотреть
Никита
16.08.2017
12:33:57
Но он пока не готов
https://github.com/whatwg/streams
Да, они для более страшных вещей, которые стримы должны уметь.
dima
16.08.2017
13:06:07
как в ноде (именно коа) с бд работать? Я в контекст прокину бд и потом делать отдельные функции?
Таймураз
16.08.2017
13:13:38
Ребят, оффтоп
Есть ли чат по эластику?
Gats
16.08.2017
13:19:24
кто-то работал с formidable ?
Ilya
16.08.2017
13:21:50
кто-то работаел с модулями - если я возвращаю значение так args.GetReturnValue().Set(num); - это блочит выполнение?
Как промисы делать?
dima
16.08.2017
14:00:02
обычный модуль mysql юзают еще? Или все на орм перешли?
Igor
16.08.2017
14:00:21
sequelize
dima
16.08.2017
14:01:15
sequelize
а для пробы просо ? Орм там объемнаяи на рус нету ничего по ней
Igor
16.08.2017
14:01:53
sequelize напоминает mongoose
Google
Igor
16.08.2017
14:01:57
ничего сложного
dima
16.08.2017
14:04:49
sequelize напоминает mongoose
только я не юзал монгу. А как по бд там? Модели есть или как? Просто я могу и обычный драйвер юзнуть со своим врапером для промиса
Igor
16.08.2017
14:05:27
sequelize юзает bluebird
да, модели есть
dima
16.08.2017
14:06:42
и все же нужно глянуть загуглить сразу секваалйз и не страдать ерундой?
Igor
16.08.2017
14:07:29
меня смущает асинк евейт и then ?
но да, секвелайз неплохо упрощает работу
если нужна миграция с raw SQL, то есть db-migrate
dima
16.08.2017
14:13:32
Igor
16.08.2017
14:14:28
как-то не православно
как же try catch ?)
Vsevolod
16.08.2017
14:14:28
тем, что одно заменяет другое
или юзай then
или авейт
dima
16.08.2017
14:14:47
Vsevolod
16.08.2017
14:15:35