OnYourLips, как минимум из-за того что нужно уметь его готовить, в node.js в этом плане всё лучше, так как он изначально рассчитан на асинхронные вызовы.
davc, по поддержки сокетов браузерами. Думаю тут не стоит сравнивать постоянно живущее приложение и постоянно умирающий PHP если не брать в расчёт его демоны асинхронные.
Axepec, ну я в говорил в адрес класса this.db, я думаю стоит сделать простую обёртку что бы он возвращал Promise при вызове вместо принятия callback'а. Плюс ко всему да, не совсем вижу смысл в обёртках возвращения email'ов. Так как не думаю что это хорошо когда некоторые данные просто пропадают. Да и SQL запрос с * не совсем правильное использование, так как получаете лишнии данные если нужны только email.
Coder321, всё дело в том что автоматический не определяется тип файла, а зачастую на веб серверах требуют filename или mime-type. Больше документации можно найти здесь.