Ответы пользователя по тегу Node.js
  • Как правильно исключить импорты css/less из webpack-сборки серверной части react приложения?

    mr_T
    @mr_T
    Web-разработчик
    Немного поздний ответ, но тем не менее кому-то может быть полезен :)
    Можно использовать null-loader для серверной сборки.
    Вот пример: https://github.com/mrTimofey/vue-ssr-starter/blob/...
    Ответ написан
    Комментировать
  • Как развернуть ExpressJS на nginx server?

    mr_T
    @mr_T
    Web-разработчик
    Вот довольно удобная штука как раз для этого.
    Ответ написан
    Комментировать
  • Sails JS: для чего нужен валидатор unique?

    mr_T
    @mr_T
    Web-разработчик
    Возможно, дело в том, что у тебя в конфигах waterline стоит migrate: 'safe', в таком случае миграции не производятся и индексы, соответственно, не создаются. Попробуй сделать migrate: 'alter' (только если не в production среде!) или задать индексы вручную.
    Ответ написан
  • Стоит ли использовать NodeJS с PostreSQL или все таки остаться на Yii2 + PostreSQL?

    mr_T
    @mr_T
    Web-разработчик
    Если вопрос именно в том, чтобы использовать PostgreSQL с нодой, то проблем никаких - есть sequelize, waterline и, думаю, еще много модулей для удобной работы с базой и ORM. По скорости выигрыш тоже будет скорее всего. Ну а в остальном слишком много "но" и "если", чтобы можно было однозначно сказать, стоит ли это делать или нет.
    Ответ написан
    Комментировать
  • Можно не использовать шаблонизатор для NodeJS?

    mr_T
    @mr_T
    Web-разработчик
    Буду оригинален и просто отвечу на вопрос.
    Сам по себе JS не мешается с HTML-кодом в принципе (кроме PHP такого нигде, собственно, и не бывает), то есть в HTML напрямую никак не внедрить JS код. Поэтому (да и не только поэтому, но другие причины красочно описаны в других ответах) для генерации HTML в NodeJS используют шаблонизаторы. А если нужно что-то, что будет максимально похоже на PHP, то можно взять EJS. Но раз уж ты взялся за ноду, то на мой взгляд нужно без рассуждений брать Jade, лучше которого нет нигде, в частности и в других языках/средах.
    Ответ написан
    Комментировать
  • Как передать большой JSON через $.ajax и не получить Request entity too large?

    mr_T
    @mr_T
    Web-разработчик
    Надо добавить processData: false, а тело запроса передать как строку. bodyParser.json() воспринимает все тело запроса как JSON документ, а не как данные формы.

    ajax.json({
    // ...
    processData: false,
    data: JSON.stringify(data)
    // ...
    });


    Ну и проблема Request entity too large как раз решается параметром limits, он и задает максимальный размер тела запроса.
    Ответ написан
    Комментировать
  • Разумное подключение middleware в Express?

    mr_T
    @mr_T
    Web-разработчик
    Так все же достаточно очевидно и зависит от требований. Если доступ к файлу ограничен, то должна быть логика для проверки ограничений => так или иначе придется настроить контроллер или middleware для этой самой проверки перед тем, как отдастся файл. Если нужно логировать запросы к файлам, то (внезапно!) нужно подключать логгер перед отдачей файлов.

    Короче, капля разумного в таком варианте, возможно, и есть, но случаи, описанные выше, на мой взгляд, встречаются достаточно редко для того, чтобы можно было ответить, что ни капли разумного здесь нет. Это еще если не говорить о том, чего ты просил не брать во внимание, хотя во внимание это берется на реальных проектах всегда.

    Кстати, десериализация юзера может быть не напрямую из базы, а, например, из сессии.
    Ответ написан
    Комментировать
  • Как в nodejs возвращать ответ на AJAX запрос?

    mr_T
    @mr_T
    Web-разработчик
    Во-первых, в jQuery есть функция data и можно (и даже нужно) сократить код до $(this).parent().data('id').
    Во-вторых, урлом /get_comments?jsoncallback=? явно что-то не так, а именно второй знак вопроса.
    В-третьих, со слов документации по res.end() для Express:
    Use to quickly end the response without any data. If you need to respond with data, instead use methods such as res.send() and res.json().

    Хотя там и есть опциональный параметр data, лучше все равно написать res.json({data: 12}); хотя бы потому, что такая запись короче и веселее.
    Исходя из того, что есть в вопросе, о других ошибках сказать нельзя, поэтому если не поможет, то покажи еще код вызова express (банально, но вдруг ты, например, вызываешь express.get, хотя запрос идет post?)
    Ответ написан
  • Как в sailsjs выполнить запрос с параметром "$gte"?

    mr_T
    @mr_T
    Web-разработчик
    Оно? В Sails используется ORM Waterline, а ей вообще по барабану, какая конкретно БД используется.
    Ответ написан
    5 комментариев
  • А не поможете разобраться с $resource и серверным ответом?

    mr_T
    @mr_T
    Web-разработчик
    Если имел место редирект (а он тут почти наверняка был), то можно посмотреть в панели разработчика все запросы, которые отправлял браузер, в частности запрос, который получил в ответ команду на редирект.
    А так - 500 ошибка где-то в приложении отправляется вручную скорее всего, так что нужно сначала выяснить, где конкретно. Скорее всего какой-то middleware типа bodyparser'а не сумел обработать запрос. А вообще странно, что был именно редирект на /server-error. По-хорошему ошибку нужно выдавать не на редиректе, а непосредственно на странице, на которой она произошла. Ну и еще в консоль приложения загляни, там может тоже что-то полезное есть.
    Ответ написан
    Комментировать
  • Почему не срабатывает watch'ер (node)?

    mr_T
    @mr_T
    Web-разработчик
    Livereload запускает отдельный сервер на другом порте (точно не помню, на каком конкретно по умолчанию, но можно вручную указать), на котором по пути /livereload.js лежит скрипт для клиента. Его, очевидно, нужно в шаблоне прописать, чтобы модуль заработал.
    Ответ написан
    3 комментария
  • Где водятся специалисты JavaScript?

    mr_T
    @mr_T
    Web-разработчик
    index0h: Нельзя "знать node.js". Это как сказать, что я знаю не Java, а JVM или не C#, а .NET.

    Знать надо JavaScript, а в случае с Node.js нужно дополнительно иметь представление об архитектуре серверных приложений (хотя Node.js это не только сервер, а по сути возможность писать на JS вообще все что душе угодно) и о том, какие задачи можно решить модулями npm. Вернее даже не знать, а уметь гуглить и понимать английский.

    Но проблема в том, что на хорошем уровне JS знает со значительно большей вероятностью фронтендщик, чем бэкендщик. Отсюда проблема поиска: чтобы писать серверное приложение на Node.js - это либо фронтендщик начинает осваивать сервер, что, безусловно, похвально, но требует понимания многих вещей, с которыми человек ранее не сталкивался, либо бэкендщик начинает осваивать JavaScript, для которого, скорее всего, в новинку событийный подход и другие моменты из мира JavaScript который, как известно, во многом сильно отличается от классических языков с поддержкой ООП. Это я еще не упомянул тот факт, что Node.js появился сравнительно недавно, и специалистов по нему чисто физически не может быть очень много.

    Еще один момент. Программисты изучают то, что приносит деньги, то есть то, что более-менее востребовано. Компании, в свою очередь, стараются использовать технологии, для которых легко найти специалиста (привет, 1С-Битрикс). В итоге замкнуый круг, который потихоньку, конечно, разомкнется, но нужно время.

    Итого: дефицит специалистов, которые бы умели все, что необходимо. К тому же ты хочешь получить и фронт, и бэк в одном флаконе, что еще больше усложняет поиск.
    Ответ написан
    1 комментарий
  • На чем выполнять множество параллельных запросов?

    mr_T
    @mr_T
    Web-разработчик
    Node.js должна идеально подойти судя по описанию. С другими языками не думаю, что будет лучше. Может быть, так же, но не лучше. Тем более раз вы уже что-то писали на ноде, то зачем переходить на что-то еще.
    Ответ написан
    1 комментарий