
KlonD90
05.09.2017
13:20:25

Алексей
05.09.2017
13:20:54
Node, mongodb. Есть коллекция с отчетами (где есть userid) и есть коллекция с юзерами. Нужно в юзеров добавить юзерайди, которых там нет и которые встречаются в отчетах
Как запросы сделать я знаю.
Но результаты в массивы не сохраняются из-за асинка.

Google

Алексей
05.09.2017
13:21:28
Не понимаю, как это решить. :(

Morsik
05.09.2017
13:21:46
а как ты это делаешь сейчас?

KlonD90
05.09.2017
13:22:37
await

Алексей
05.09.2017
13:23:48
Никак не делаю. Написал запросы, в консоли результаты отображаются, а если дальше массивы парсить, там пусто. Попробовал с колбеками, но тоже самое.
Ща пришлю код.
С совещания выйду. :)
Просто может какой-то способ есть.
Несложная задача, довольно тривиальная

Max
05.09.2017
13:27:49
(ты здесь и находишься)
А тарантул вообще норм? Если в нем прям шаришь, я смогу в ЛС посоветоваться по тому - подходит или нет он нам?

KlonD90
05.09.2017
13:29:35
(это меташутка)
но вообще изложи систему

Алексей
05.09.2017
13:31:01
Вот функция
function getDBusers ( callback ) {
MongoClient.connect(url, function(err, db) {
if (err) return callback(new Error("An error has occured"));
db.collection('users').find({}, { userid: true, name: true }).toArray(function(err, dbusers) {
if (err) return callback(new Error("An error has occured"));
//console.log(result);
callback(dbusers);
});
db.close();
});
}

Google

Алексей
05.09.2017
13:31:10
Может лучше скринами с подсветкой?
function getDBusers ( callback ) {
MongoClient.connect(url, function(err, db) {
if (err) return callback(new Error("An error has occured"));
db.collection('users').find({}, { userid: true, name: true }).toArray(function(err, dbusers) {
if (err) return callback(new Error("An error has occured"));
//console.log(result);
callback(dbusers);
});
db.close();
});
}
Получше, хотя читается все равно так себе. :)

Иван
05.09.2017
13:32:34

KlonD90
05.09.2017
13:32:53
я бы хотел сказать что async await в 2k17 но who cares

Дмитрий
05.09.2017
13:33:39
Futures

Morsik
05.09.2017
13:34:55
а нафиг тебе настолько низоуровневый драйвер?

Алексей
05.09.2017
13:35:49
https://jsbin.com/peloqisufi/edit?js
Вот так?:
Ну там функционал не дописан, есессьна, но смысл такой. Взяли данные из одной коллекции, взяли данные из другой, сравнили данные из первой с тем, что есть во второй, дальше то, что не нашли во второй - дописали.

KlonD90
05.09.2017
13:37:29

Morsik
05.09.2017
13:42:55
коллекции же создаются?

Алексей
05.09.2017
13:43:34

Serg
05.09.2017
14:08:47
Посоветуйте модуль для изучения исходников его, что по всем канонам LTS современным написан

Anton
05.09.2017
14:14:51

Alisa
05.09.2017
14:25:40
мб наивный вопрос, но какой смысл скейлить поды с node.js беком в рамках одной ноды?
типа она ж на каждое соединение поток поднимает
и либо все упирается в синхронные операции, либо в ресурсы компьютера
то есть горизонтальное масштабирование в рамках одного сервера не имеет смысла, так как они будут бороться за ресурсы + быстрее будет жрать память из-за начального размещения в оперативной памяти
верно?

Aleksandr
05.09.2017
14:36:16
верно?
нет, скейлить ноду имеет смысл по схеме количество процессов == количеству физических ядер

Google

Aleksandr
05.09.2017
14:38:46
однако в случае преобладания i/o-bound операций можно скейлить в соотношении до 5*C:С

Alisa
05.09.2017
14:41:29

KlonD90
05.09.2017
14:43:04

Aleksandr
05.09.2017
14:47:07

KlonD90
05.09.2017
14:49:27

Aleksandr
05.09.2017
14:49:38

Anton
05.09.2017
14:51:40

KlonD90
05.09.2017
14:52:45
ну если есть лишние миллионы
то оракл неплох

Ilya
05.09.2017
15:20:23
SAP DB тогда уж

Anton
05.09.2017
15:27:01
SAP DB тогда уж
ну нее, не серьезно. тырпрайзы оче любят в xml, а сапдб не могет xquery как оракл

KlonD90
05.09.2017
17:57:04
как сделать так как у tele.ga?

Сергей
05.09.2017
17:57:53

KlonD90
05.09.2017
17:58:20
блог с канала
в вебчике

Сергей
05.09.2017
17:58:35
не вижу сложности
ну пишут они в вебе
и отправляют в канал ботом

Google

Сергей
05.09.2017
17:58:47
или наоборот

KlonD90
05.09.2017
18:02:25
есть еще готовые сервисы
или библиотеки
чтобы развернуть

Ches
05.09.2017
18:20:13
кто что пробовал делать чтобы хероку не уходил в сон?

Admin
ERROR: S client not available

Ches
05.09.2017
18:20:57
я сделал запросы с сервера самому себе, каждые 10 минут, вроде неделю работало все ок, сейчас опять начал засыпать
через крона

noir
05.09.2017
18:35:28
раньше сайт был, который будил
http://www.herokuping.com

Ches
05.09.2017
19:27:56
не понимаю почему свои запросы с крона перестали работать

Node.js releases
05.09.2017
20:10:39
Node v6.11.3 (LTS)
https://nodejs.org/en/blog/release/v6.11.3

Borys
05.09.2017
20:34:29
плиз помогите въехать!
читаю http://expressjs.com/ru/guide/using-middleware.html
В данном примере представлена функция промежуточной обработки без пути монтирования. Эта функция выполняется при каждом получении запроса приложением.
var app = express();
app.use(function (req, res, next) {
console.log('Time:', Date.now());
next();
});
я честно говоря предполагал, что при получении запроса срабатывает методы для конкретного маршрута типа
app.get('/user/:id', function (req, res, next) {
res.send('USER');
});
сорри какой вообще цикл работы ноды? вот запустил я сервак node app.js что происходит дальше?

Ches
05.09.2017
20:35:28
сейчас наверное посоветуют дебаггер включить))

Morsik
05.09.2017
20:35:32
он в порядке обьявления вызывает каждый подходящий обработчик
если вызван next - то он будет выполнять следущий по порядку обработчик (блин, как их правильно назвать?)
по поводу цикла работы - есть же куча статей про event loop в ноде

Borys
05.09.2017
20:38:08
о я не против дебагера! ) я про евент луп читал. я имею ввиду - приходит запрос и весь код начинает отрабатывать сначала?
ну например пхп создает процес и все начинает работать от корня index.php или типа того. тут аналогично?

Google

Morsik
05.09.2017
20:38:45
только обработчики
модуль исполняется один раз когда его подключаешь

Borys
05.09.2017
20:39:16
и попадает в кеш

Morsik
05.09.2017
20:39:21
дальше только вызываются колбеки

Borys
05.09.2017
20:40:10
т.е. тот пример который я рпивел - он правильный? и так в жизни пишут? определяют метод, привязывают (например без маршрута) и он работает?

Morsik
05.09.2017
20:40:32
да

Borys
05.09.2017
20:40:56
ясно. спасибо

Morsik
05.09.2017
20:42:00
только еще выносят обычно все по роутерам

Borys
05.09.2017
20:45:08
я как раз только такие примеры видел, потому очень удивился функции "общего назначения" без роута

Сергей
05.09.2017
20:46:27
Вечер в хату
Кто юзает loopback?

Dmitrii
05.09.2017
20:48:44
кто

KlonD90
05.09.2017
20:48:46
а зачем? что он вообще делает?

Morsik
05.09.2017
20:49:35
генерит модельки и рест-апи и еще кучу всего

Aleksandr
05.09.2017
20:49:45

KlonD90
05.09.2017
20:50:14
loop?

Morsik
05.09.2017
20:50:44
так, я запутался, мы же про loopback от ibm?

Aleksandr
05.09.2017
20:52:28