Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
    AlexYankee
    @AlexYankee
    This message was deleted
    This message was deleted
    This message was deleted
    Daniel Colgan
    @danielcolgan
    Hello everyone! I'm looking for some information about creating NodeJS RESTful API server for mobile apps, maybe somebody knows, posts or tutorials? - Thank you!
    Сковорода Никита Андреевич
    @ChALkeR
    @khusamov Нет, это норма для человеков
    Ньюби-Кларк [Newby-Clark et. al., 2000] обнаружили, что опросы испытуемых об их предсказаниях, основанных на наиболее реалистичном предположении, и опросы испытуемых об их надеждах в самом лучшем случае давали неразличимые результаты. Будучи спрошены о наиболее вероятном стечении обстоятельств, люди имели тенденцию предполагать, что все пойдет так, как планировалось, без неожиданных задержек и непредвиденных катастроф, то есть так же, как в наилучшем случае.
    Yarkov Aleksey
    @yarkovaleksei
    Ребятушки, всем добрый день. Встала задача переписать проект с РНР на Node.js. В целом все понятно, но я привык уже к Mongoose. А проект использует MySQL. Не подскажете инструмент для работы с мускулом в стиле Mongoose? Гуглил много, вариантов для работы с мускулом много, а вот что выбрать не знаю. Поделитесь опытом, пожалуйста.
    andrey
    @kaflan
    там лучше брать один из тех кто контрибьютился как минимум месяц назад
    Dmitry Pishchalka
    @dpischalka
    Всем привет. Я в gitter новичёк, здесь какие правила, флудят или сугубо по проблемам?
    @hellboy81 А здесь не вменяемый? :)
    Алексей
    @Alexey-Myshevskiy
    Добрый день сообщество.
    Помогите пожалуйста.
    Я пытаюсь получить количество строк из mysql через promise, внутри модуля все хорошо, но когда отдаю результат через resolve в другом модуле получаю такое:
    OkPacket { fieldCount: 0, affectedRows: 1, insertId: 0, serverStatus: 34, warningCount: 0, message: '(Rows matched: 1 Changed: 1 Warnings: 0', protocol41: true, changedRows: 1 }
    Вот мой код...
    getCountOfUnclosed: function (userID) {
                return new Promise((resolve, reject) => {
                    getConnection()
                        .then((conncetion)=> {
                            var query = conncetion.query("SELECT COUNT(*) AS countOfUnclosedTasks FROM Tasks WHERE `is_resolved`=false AND `user_id`=?", userID);
                            query
                                .on('error', (SqlError)=> {
                                    Logger.error(SqlError.stack);
                                    conncetion.release();
                                    reject(SqlError.stack);
                                })
                                /*.on('fields', function(fields) {
                                    console.log(fields);
                                })*/
                                .on('result', (row) => {
                                    //here all ok => 3 or 5
                                    resolve(row.countOfUnclosedTasks);
                                })
                                .on('end', (row)=> {
                                    conncetion.release();
                                });
    
                        })
                });
            }
    // в модуле где вызываеться этот метод получеться не тот результат который я ожидаю
     if (isMember) {
    
                    Task.closeTask(req.body.groupID, req.session.user.uid)
                        .then(Task.getCountOfUnclosed(req.session.user.uid))
                        .then((count)=> {
                            console.log(count);// return OkData :( !!
                            if (count > 0) { // Число не закрытых задач
                                res.status(200).json({isClosedTask: true, isActivated: false});
                            }
                            else {// Если все задачи закрыты и группу можно активировать
                                Group.activateGroup(req.session.user.uid)
                                    .then(()=> {
                                        res.status(200).json({isClosedTask: true, isActivated: true});
                                    })
                            }
                        })
                        .catch((Error)=> {
                        console.error(Error);
                        res.status(500).end();
                    });
                }
    Andrey Sidorov
    @sidorares
    on('result') вызывается на каждую строку - не очень лучшее место для того чтобы вызывать resolve()
    хотя тут только одна строка возвращается
    Алексей
    @Alexey-Myshevskiy
    угу
    Я не нашел выход, поэтому подумал что тут не много преимуществ обещаний, и сделал через коллбеки. И все работает.
    Andrey Sidorov
    @sidorares
    не проще conn.query('select ...', (err, rows) => { if (err) return reject(err); resolve(rows[0]. countOfUnclosedTasks) }) ?
    Алексей
    @Alexey-Myshevskiy
    так было изначально, и тот же эффект
    Andrey Sidorov
    @sidorares
    shameless plug: в mysql2 из коробки есть Promise api
    Алексей
    @Alexey-Myshevskiy
    @sidorares Буду знать спасибо, я решил проблему через коллбек.
    Andrey Sidorov
    @sidorares
    я почти уверен что результат от другой комманды
    если есть affectedRows и т.д - то это ответ от insert/delete
    у селекта всегда массив строк в ответ ( даже если пустой результат )
    Алексей
    @Alexey-Myshevskiy
    неисключено что я плохо знаю промисы и что-то сделал был не так.
    Gavrilov Ruslan
    @shadowwzw
    This message was deleted
    лучше использовать генераторы для более понятного и красивого кода
    а не цепочки .then
    причем bluebird промисы работают быстрее нативных и об этом я публиковал статью на хабре
    AndrewBaggins
    @AndrewBaggins
    Помогите, пожалуйста.Создаю ассоциированный массив, инициализирую переменные, передаю в функцию. Функция не выполняется - говорит, что переменная "game" (см. ниже) не объявлена. Вопрос: это как??? Разве надо явным образом объявлять переменные ассоциированного массива в JS??? И почему именно вторая переменная массива? Почему со всеми остальными всё в порядке (проверял)???
    This message was deleted

    Код:

    // Выполняется по onklick
    function apply() {
                var channel = {};
                channel[status] = document.getElementById("title").value;
                channel[game] = document.getElementById("activity").value;
                channel[language] = document.getElementById("language").value;
                if ($('language-mode').prop("checked")) {
                    param[broadcaster_language] = document.getElementById("language").value;
                    Twitch.api({method: '/channels/' + login, verb: 'PUT', params: channel}, function(error, channel) {});
                }

    Если что, я новичёк в JS (вот прям совсем), т. ч., прошу не казнить на месте.

    AndrewBaggins
    @AndrewBaggins
    Если есть люди, разбирающиеся в TwitchAPI было бы вообще идеально (потому что функция всё равно почему-то не отрабатывает нормально, и нужно ещё выяснить, почему...).
    AndrewBaggins
    @AndrewBaggins

    Код:

    // Выполняется по onklick
    function apply() {
                var channel = {};
                channel[status] = document.getElementById("title").value;
                channel[game] = document.getElementById("activity").value;
                channel[language] = document.getElementById("language").value;
                if ($('language-mode').prop("checked")) {
                    param[broadcaster_language] = document.getElementById("language").value;
                    Twitch.api({method: '/channels/' + login, verb: 'PUT', params: channel}, function(error, channel) {});
                }

    Пордон, немного не так:

    function apply() {
                var channel = {};
                channel[status] = document.getElementById("title").value;
                channel[game] = document.getElementById("activity").value;
                channel[language] = document.getElementById("language").value;
                if ($('language-mode').prop("checked")) {
                    param[broadcaster_language] = document.getElementById("language").value;
                }
                Twitch.api({method: '/channels/' + login, verb: 'PUT', params: channel}, function(error, channel) {});
            }
    Но не суть.
    AndrewBaggins
    @AndrewBaggins
    Код ошибки: Uncaught ReferenceError: game is not defined
    Andrey Sidorov
    @sidorares
    @AndrewBaggins так game объявлена или нет? если просто надо поле "game" установить то тогда channel.game = document.getElementById...
    AndrewBaggins
    @AndrewBaggins
    Так тоже такую же ошибку выдаёт...
    AndrewBaggins
    @AndrewBaggins
    Уже по-всякому пробовал. В итоге просто забил. Послал в функцию прямые запросы к текстовым полям. Вроде помогло....
    AndrewBaggins
    @AndrewBaggins
    Люди, помогите. У меня горит... То ли я слепой, то ли документация писана идиотами. Как закрыть все окна node-webkit-приложения??? Ни "nw.App.closeAllWindows()", ни "App.closeAllWindows()", ни с объявлением через <script>, ни с объявлением через require, ни ещё Бог-знает-что Бог-знает-как не работает!!! Как ещё мне выдолбнуться, чтобы приложение увидело эту функцию и выполнило??? В документации НИГДЕ НЕ НАПИСАНО, как это делается. Либо я в глаза долблюсь. А "по аналогии" (с, к примеру, "Window") не работает (моими руками, по крайней мере). В итоге: "Uncaught ReferenceError: nw is not defined" и вот хоть обгуглись. Помогите, пожалуйста, кто знает...
    Hryhorii Furletov
    @littlefuntik
    Привет всем, уважаемое сообщество!
    создаю fs.createReadStream(file).pipe(мой EventEmitter)
    в результате, если я в моем EventEmitter отправляю emit('error'...), то не выполняется событие 'end' и скрипт не завершается, но файл полностью считывается. Пришлось свое событие создавать 'myError' к примеру. Как так? Объясните, плыс, кто шарит в этом.
    Дмитрий Мязин
    @d4c0
    Ребята, подскажите. Есть сайт , есть сервис на nodejs, нужно осуществить их взаимодействие. Сейчас у нас всё костыльно. Сервис на nodejs крутится на той же машине что и сайт, и мы осуществляли общение cURL'ами. Люди подсказали что это дикий костыль - юзать cURL в контексте локальной машины, посоветовали заюзать Redis. Мы поставили редис (пока ещё не переписывали функционал). Так вот, этот сервис на nodejs должен так же общаться с множеством ПОДсервисов на том же nodejs. Как осуществить их взаимодействие? Они запускаются в отдельных окнах консоли (находятся в разных файлах)? Тут тоже юзать Redis, или я чего-то не понимаю. Может просто в файле основного сервиса сделать require этих ПОДсервисов. Объясните?
    Andrey Sidorov
    @sidorares
    @littlefuntik посмотри в сторону https://github.com/mafintosh/pump
    Yevhen Blotskyi
    @Mefistophell

    Привет! Получаю данные из формы, но структура не подходит. Кто знает как изменить массив из такого:

    [ '1', '2' ]['username1','username2'],['image1','image2']

    на вот такой

    ['1',username1','image1']['2','username2','image2']

    ?

    или объект с такой структурой
    ewnd9
    @ewnd9
    @Mefistophell https://lodash.com/docs/4.16.3#zip
    _.zip(['a', 'b'], [1, 2], [true, false]);
    // => [['a', 1, true], ['b', 2, false]]
    Yevhen Blotskyi
    @Mefistophell
    @ewnd9 Благодарю, это то что нужно! Я, правда, уже успел сделать преобразование через перебор.