nodejs: Отправка файла REST-запросом

Отправка файла и полей с данными как REST запрос из nodejs сервера на coffeescript

По началу кажется простой задачей – на stackoverflow активно рекомендуют модуль request, он правда классный. Гнётся во все стороны.. но..

  1. На сайте есть пример как отправить файл, но не бинарный, а текстовый. И почему то если натравить запрос с таким “файлом” опять же ноде(другому серверу) он не видится как файл
  2. Гуглить любые проблемы связанные с модулем крайне затруднительно – автор решил не задумываться и дал незамысловатое название, благодаря чему гуглится все, что угодно, только не то нужно.

Read more

Kohana: AJAX контроллер с ловлей ошибок

Продолжая тему написания custom контроллеров не для html вывода предлагаю мой вариант обработчика AJAX-запросов. Напомню, в предыдущий раз я описывал контроллер для консольного демона

Помимо удобной для меня выдаче данных(я предпочитаю в 99% случаев выдвать JSON) есть ещё ряд фитч:

  • Код контроллера многократно используется наследниками класса, которые при необходимости могут перегрузить необходимые методы. В них написать простой ответ клиенту с помощью не сложных функций можно в пару строк – не нужно отвлекаться на создание json ответа, а писать логику.
  • Дефолтные ответы об успешном выполнении запроса, предупреждения или ошибки
  • Ловятся ошибки фреймворка и формируется адекватный отчёт об ошибке, а не километровый HTML от Kohana – просто идеально при использовании fireBug или аналогичных средств отладки.
  • Если вызываемый метод не реализован в наследнике, то будет выдан user-friendly ответ(опять же если использовать регламент возвращаемых структур json)

Read more

JavaScript: обход дерева объектов

Допустим корневой объект который нужно обойти задан так:

var myobj =
{
      "city": "spb",
      "user": {
            "name": "misha",
            "age": 30,
            "props": {
                  "enabled": 1,
                  "guest": 1
            }
      },
      "browser": "lynx"
};

Read more

jQuery: отправка полей формы ajax-ом

Чтоб отправить поля формы(в примере с id=”f2s”), с помощью jQuery и аякса методом POST, в качестве второго аргумента не обязательно специально создавать объект в котором перечислять поля в виде ключ-значение.
Можно поступить так:

<a href="#f2s" onclick="
$.post(ajax_post_prefix + 'debug',
   $('#f2s').serialize(),
   function(dat) {
       $('#debug').text('Debug:' + dat);
   }, 'html');)
">
debug me</a>

Read more