@nodejs_ru

Страница 1098 из 2748
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
у тебя тупо нет res в getProfileBlog
ну он render тогда не распознает

хотя другие методы проходят

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))

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 )

KlonD90
16.08.2017
12:18:40
от postgresql?

dima
16.08.2017
12:19:29
mysql модуль

Google
Никита
16.08.2017
12:20:39
(хз где их вообще нету сейчас разве что в основной библиотеке ноды почему кстати еще нет? @ChALkeR )
Потому что 1) новый апи надо делать, и просто промисифаем на него ложится не всё 2) при этом совместимость важна 3) при этом были высказаны опасения про усложнение отладки 4) см п.1 - часть апи вообще надо будет переделать на for await, когда он будет, а переделывать два раза не круто, потому что слишком часто экосистема переписывать тоже не любит @vkurchatkin может больше сказать, кстати

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
А, ну да, конечно =)

Никита
16.08.2017
12:28:10
Ну экосистему тоже можно не использовать
Очень мало кто вообще ничего не тянет. Даже я в Uthgar, несмотря на то что там в целом минималистично, использовал несколько заметных модулей из нпм.

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
А что есть на замену?
https://github.com/tc39/proposal-async-iteration

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
но да, секвелайз неплохо упрощает работу
а как выглядят модели или что там делают. На пример в пхп есть класс бд и каждая модель расширяет его указывая в свойтсве только имя таблицы. А тут как

как-то не православно как же try catch ?)
зачем тру кетч? у меня для этого мидл есть

Страница 1098 из 2748