Ответы пользователя по тегу Веб-разработка
  • Какие технологии использовать для создания чата?

    Abdusalamov
    @Abdusalamov
    Front-end разработчик
    Смотря на чем будете реализовывать. В любом случае, если нужно "в реальном времени", то лучше подойдет WebSocket, а в качестве fallback'а — polling, long-polling для старых клиентов. Думаю, для каждого языка есть более или менее внятная реализация. Как указали ранее, socket.io для nodejs умеет сам переключать транспорты по необходимости.
    Ответ написан
    Комментировать
  • Небольшая корпоративная социальная сеть на Node.js : за и против?

    Abdusalamov
    @Abdusalamov
    Front-end разработчик
    Гм-гм, позволю себе такое допущение в ответах, но если нужно красивенько и современно для корпоративной среды, то существует bitrix24.ru. Я не фанат Битрикса, но над этим продуктом постарались.

    Ну если вдруг решили попилить сами, то вдохновляйтесь.
    Ответ написан
    Комментировать
  • Module.exports не дожидается исполнения callback. Как решить эту проблему?

    Abdusalamov
    @Abdusalamov
    Front-end разработчик
    Вопрос не столько стоит в том, что вы не умеете готовить NodeJS, сколько в том, что вы не умеете готовить асинхронные запросы.

    Нельзя возвращать результат из функции, как это сделали вы. db.query - асинхронная функция, ответ может прийти когда угодно, и к тому времени ваша конструкция return будет уже неактуальной, к тому же return находится в другой области видимости (анонимный колбек в db.query). Поскольку вы не возвращаете что-либо из функции test синхронно, по-умолчанию вы получаете undefined (отсутствие return равносильно return undefined).

    Если не углубляться до модуля async, то решается это так:

    main.js
    var db = require('./db');
    db.test(function(count){
        console.log('main.js: ' + count);
    });

    db.js
    var mysql = require('mysql');
    
    var db = mysql.createPool({
      ...
    });
    
    exports.test = function(callback) {
      db.query("SELECT COUNT(*) FROM `users`", function(error, rows){
        var count = rows[0]['COUNT(*)'];
        console.log('db.js: ' + count);
        (typeof callback != 'undefined') && callback(count);
      });
    }
    Ответ написан
    1 комментарий