Как отправить мою форму jQuery в node.js connect-form - PullRequest
0 голосов
/ 31 января 2012

Серверная часть, я использую функцию ниже (используется как промежуточное ПО espressjs)

function objCreation(req, res, next){
  req.form.complete(function(err, fields, files){
    if (err) {
       next(err);
    } else {
       // Set params in request
       obj = {};
       obj.label = fields.label;
       // Check if picture is provided
       if(files.image){
          // Move file to correct dir
          var fs = require("fs");
          var folder = '/var/images/';
          var src = files.image.path;
          var filename = files.image.name;
          var target = folder + filename;

          obj.filename = filename;
          req.obj = obj;

           fs.rename(src, target, function (status) {
             next();
          });
       } else {
          obj.filename = 'nofile';
          req.obj = obj;
          next();
       }
    }
  });
}

По сути, он получает поля отправленной формы. Эта функция использует модуль "connect-form" node.js.

Клиентская сторона, я использую вводимый текст:

<input id="new_obj" type="text" placeholder="New"/>

и обратный вызов срабатывает при достижении возврата на этот вход:

// Add callback for object creation
$('#new_obj').keypress(function(e){
  if (e.which == 13){
    createObj();
  }
});

Функция createObj является следующей:

function createObj(){
 $.ajax({
   url: "/object/create/",
   type: "POST",
   data: { label : "label" },
   success: function(obj) {
     console.log(obj);
   },
   error: function(jqXHR,status,errorThrown) {
     alert(jqXHR.responseText + '-' + status + '-' + errorThrown);
   }
 });
}

Мне не удается, чтобы эта последняя часть отправляла форму в правильном формате, поэтому она обрабатывается методом сервера. Я не хочу менять сторону сервера, поскольку она уже используется некоторыми другими клиентами (форма отправки клиента iOS с ASIFormDataRequest).

В настоящее время я смотрю на плагин ajaxForm jQuery, чтобы посмотреть, может ли это помочь.

1 Ответ

0 голосов
/ 07 февраля 2012

Мне удалось исправить это с помощью последней версии expressjs, которая больше не использует форму соединения (устарела), но использует вместо этого грозный.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...