@nodejs_ru

Страница 2286 из 2748
Naught
12.07.2018
04:03:27
На принимающем скрипте экспресс роут, который кидает в консоль req.body , который {}

Такое ощущение, что request не ест то, что я ему сую.

Павел
12.07.2018
04:21:43
body: JSON.parse(data.toString(... , json: true,

Из доки к модулю request: "If json is true, then body must be a JSON-serializable object"

Google
Naught
12.07.2018
04:25:34
body: JSON.parse(data.toString(... , json: true,
Да, это сработало. Огромное спасибо!

Sol
12.07.2018
05:48:02
как обороться с ситуацией, когда delete опережает предыдущую операцию? например: let obj = jbo[key] if (obj.num > 5) {...} delete jbo[key] периодически возникает ошибка, что .num не существует, потому что delete обогнал не только if но и let

Dzmitry
12.07.2018
05:54:57
смотрите код это невозможно все операции синхронны в данном примере

+ синхронные операции в приоритете всегда

Maks
12.07.2018
05:59:35
может стоит добавить проверку на существование объекта? а периодичность ошибки, какбы сигнализирует, что гдето в ваш закрался рейс кондишен)

Sol
12.07.2018
06:02:12
Если ты делаешь это в for..in, то проверяй на наличие собственного ключа методом hasOwnProperty
не делаю. код абсолютно прозрачен для удобства присваиваем переменной значение из большого объекта делаем разные проверки по полям этой переменной и потом, в самом конце удаляем из большого объекта . и в итоге получается, что каким-то макаром этого поля уже нет в момент присвоения

Alexander
12.07.2018
06:02:48
Ну так сделай

Sol
12.07.2018
06:02:59
не, ну можно конечно заслонку поставить, но я надеялся обойтись без лишних задержек :(

Alexander
12.07.2018
06:03:44
Какую заслонку?

Нц да, лучше, чтобы код вылетал, нежели работал на 1 такт медленнее

В конце концов, вылетевший код сработает быстрее

Google
Sol
12.07.2018
06:05:57
Какую заслонку?
throttle чтобы гарантировать строго последовательное вызовы

Alexander
12.07.2018
06:06:27
Ты так троллишь с утра пораньше?

Если да, то хаха молодец

Sol
12.07.2018
06:07:09
?

Alexander
12.07.2018
06:11:15
А вообще да, надо быть тем ещё гением, чтобы итерироваться по объекту, из которого ты динамически удаляешь поля

Sol
12.07.2018
06:20:52
не так там. есть функция на вход которой подаётся ключ объект которого надо проверить на условия и удалить если соответствует. нету внутри никакого for только свич function chandel(i) { let obj = jbo[i] // некий глобальный объект, удалять из которого может только эта функция if (obj.num >5) { ... return } else if... return } delete jbo[i] saveState (jbo) return }

Alexander
12.07.2018
06:21:12
Ах, уже этот объект глобальный

Dzmitry
12.07.2018
06:21:35
топ

мутабилити эз зис

Sol
12.07.2018
06:22:40
и каким-то макаром в момент let obj получает undefined

Alexander
12.07.2018
06:23:03
saveState асинхронная?

Sol
12.07.2018
06:23:05
нигде более delete нету

saveState асинхронная?
при чём тут это? там fs.writeFileSync

Alexander
12.07.2018
06:24:06
Ох

Ещё и синхронные обращения к fs

при чём тут это? там fs.writeFileSync
Притом, что я пытаюсь проанализировать кусок кода, вырванный из контекста

Sol
12.07.2018
06:24:56
да. только вот ошибка до обращения к диску

Alexander
12.07.2018
06:25:44
А вызывается этот метод как?

Sol
12.07.2018
06:26:45
вызывается из другой проги. это мидлварь. я думал может два раза вызывалось, но console.log сработал только 1 раз

Google
Sol
12.07.2018
06:27:42
и проявляется это нестабильно. может работать нормально а потом хоп и num не найден

Maks
12.07.2018
06:27:55
» function chandel(i) откуда код, вызывающий эту функу, получает инфу о ключе?

Sol
12.07.2018
06:29:00
из другой функи, которая возвращает в прогу список ключей. причём она их действительно возвращает, сдя по log

Alexander
12.07.2018
06:31:09
Ну ты наворотил

Sol
12.07.2018
06:32:44
это не я наворотил :) просто есть чужая прога, которая последовательно дёргает разные методы в мидлвари. сначала один метод - получает ключи, потом анализирует эти ключи и дёргает другой метод, который должен удалить объект с таким ключом и т.д. ладно, в принципе там скорость неважна, поставлю везде throttle

Alexander
12.07.2018
06:34:00
Чиго

Ну ладно, это твоё дело

Maks
12.07.2018
06:34:16
» один метод - получает ключи, как он их получает? случайно не читает из файла?

Sol
12.07.2018
06:48:39
» один метод - получает ключи, как он их получает? случайно не читает из файла?
читает из файла в первом методе, синхронно. получает ключи в другом. удаляет в третьем. :) console.log (jbo) // я вижу этот объект let obj = jbo[i] console.log (obj) // undefined ... delete jbo[i] // единственное место где этот ключ может удалиться :)

blaccyee
12.07.2018
06:49:42
Господа, помогите с верным синтаксисом sql. Есть запрос let updateReq = 'UPDATE crm_requests SET date = ? WHERE phone = ?'; connection.query(updateReq,[arr['date'], arr['phone']], function(err, res){ Как написать такой UPDATE crm_requests SET date = '2018-07-12', 'timestamp' = '123123' WHERE phone = '89257656851' and state = 'test'

blaccyee
12.07.2018
06:51:32
а в чем именно проблема?
Не понимаю, как верно по синтаксису так написать. Только вкатился в node

Anton
12.07.2018
06:51:48
запрос есть, ставишь в функцию с запросом, знаки вопроса - плейсхолдеры

blaccyee
12.07.2018
06:51:56
а в чем именно проблема?
Везде примеры с одним условием

Andry
12.07.2018
06:52:52
в том порядке, в котором идут знаки вопроса в строке запроса должны идти параметры в массиве параметров

Andry
12.07.2018
06:53:55
либо можно именованные параметры использовать UPDATE crm_requests SET date = :date WHERE phone = :phone тогда объект можно передавать { date: ... , phone: ... }

Anton
12.07.2018
06:54:22
именованные - не везде

Anton
12.07.2018
06:54:45
что конретно непонятно то?

Google
Andry
12.07.2018
06:54:48
Так а как and тот же самый прописать?
вы же написали) UPDATE crm_requests SET date = '2018-07-12', 'timestamp' = '123123' WHERE phone = '89257656851' and state = 'test' UPDATE crm_requests SET date = ?, 'timestamp' = ? WHERE phone = ? AND state = ?

и передаём массив с 4 параметрами: date, timestamp, phone, state. По порядку

morheal
12.07.2018
06:55:39
Всем привет, подскажите кто сталкивался с генерацией pdf, какой пакет использовали?

blaccyee
12.07.2018
06:55:40
UPDATE crm_requests SET date = :date, 'timestamp' = :timestamp WHERE phone = :phone and state = :state Я правильно понял?

Andry
12.07.2018
06:56:35
UPDATE crm_requests SET date = :date, 'timestamp' = :timestamp WHERE phone = :phone and state = :state Я правильно понял?
да, если библиотека/драйвер/БД поддерживает именованные параметры)

Sol
12.07.2018
07:06:45
delete медленный, я бы не стал его так применять, можно задать значение undefined и потом их отсеять
т.е он типа исполнился, но на самом деле не удалил, а потом этот ключ повторно увидела прога и повторно попыталась удалить и тут наконец-то делет сработал? ну это может быть объяснением

Admin
ERROR: S client not available

Maks
12.07.2018
07:09:53
delete медленный, я бы не стал его так применять, можно задать значение undefined и потом их отсеять
на сколько медленный? на сколько это замедление критично в данной ситуации? все зависит от контекста. в данной ситуации - это экономия на спичках.

blaccyee
12.07.2018
07:12:14
да, если библиотека/драйвер/БД поддерживает именованные параметры)
Ругается что-то) http://imagizer.imageshack.com/img923/927/DXv26I.png

Maks
12.07.2018
07:12:22
т.е он типа исполнился, но на самом деле не удалил, а потом этот ключ повторно увидела прога и повторно попыталась удалить и тут наконец-то делет сработал? ну это может быть объяснением
не может! delete синхронный. проблема в рейскондишене скорее всего. возможно твоя функа вызывается более одного раза. поставь дебаггер - подебажь

Alexander
12.07.2018
07:12:34
Павел
12.07.2018
07:16:17
function chandel(i) { let obj = jbo[i] // некий глобальный объект Там где этот объект используется, можно добавить проверку, чтобы пропускать пустые значения?

blaccyee
12.07.2018
07:22:34
Ну скобку же потерял ну
И все же пишет ошибку синтаксиса http://imagizer.imageshack.com/img921/741/vyuveR.png

Alexander
12.07.2018
07:23:23
он же тебе даже вывел кусок запроса, где синтаксическая ошибка. если ты хотел туда скормить не :phone, то у тебя точно ошибка

Alexander
12.07.2018
07:27:16
ну он не экранирован кавычками, как ты видишь

Google
Alexander
12.07.2018
07:27:20
и спасибо за номерок лол

blaccyee
12.07.2018
07:27:37
Ches
12.07.2018
07:29:40
подскажите где можно почитать можно ли использовать сейчас 10 ноду в продакшене?

или что вы думаете?)

через несколько месяцев в LTS уже будет

Anton
12.07.2018
07:29:57
mysql раньше не поддерживал именованные плейсхолдеры

Ches
12.07.2018
07:30:23
мы решили обновится с 6, и я предлагаю сразу на 10

Aion
12.07.2018
07:30:38
Ches
12.07.2018
07:30:39
а пока собирались на 8

Alexander
12.07.2018
07:30:45
так если у тебя нет ничего, что можно использовать из 10, то возьми текущий лтс

Ches
12.07.2018
07:30:46
почему?

Anton
12.07.2018
07:31:21
кроме новых фич и багов в ноду с обновлением версии завозят обновленный движок, что может увеличить производительность - если это критично

Ches
12.07.2018
07:31:42
ну приложение большое, поэтому думаю будет важно)

Ches
12.07.2018
07:31:49
но и риски тоже)

Ches
12.07.2018
07:32:14
в тоже время она у нас только для серверного рендеринга

а не как апи

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