Urlencoded Form в Express/nodejs (огромен)

Използвам node-formidable за обработка на данни от формуляри в приложението Express/Nodejs. Изпращам POST варианти от POSTman Chrome Extension. (между другото, http://httpbin.org/post работи добре)

Ако използвам multipart/form-data, всичко е наред.

Ако използвам urlencoded, обратното извикване на form.parse никога не се задейства и блокира всички отговори. той просто заключва метода post.

задължително:

var formidable = require('formidable');
var http = require('http');
var util = require('util');

метод на публикуване:

app.post("/items",function(req,res){
    var form = new formidable.IncomingForm();
    form.parse(req,function(err,fields,files){
        console.log(fields);
        res.send("posted");
     });
});

експресни настройки:

app.use(express.json());
app.use(express.urlencoded());
app.use(express.multipart());
app.use(express.cookieParser());
app.use(express.static(__dirname + '/public'));
app.use(express.cookieSession({secret:"wow_so_secret_such_code_gud_layers"}));
app.use(passport.initialize());
app.use(passport.session());
app.use(express.methodOverride());

има ли някакъв трик за използване на urlencoded?

може да е важно;

{ 
  domain: null,
  _events: {},
  _maxListeners: 10,
  error: null,
  ended: false,
  maxFields: 1000,
  maxFieldsSize: 2097152,
  keepExtensions: false,
  uploadDir: '/var/folders/pl/xnl7cxpj075chytyf_t7f1480000gn/T/',
  encoding: 'utf-8',
  headers: null,
  type: null,
  hash: false,
  bytesReceived: null,
  bytesExpected: null,
  _parser: null,
  _flushing: 0,
  _fieldsSize: 0,
  openedFiles: [] 
}

както urlencoded, така и multipart връща нула.


person Onur Özkan    schedule 17.12.2013    source източник
comment
Ако използвате formidable за анализ на входящ формуляр, не е необходимо да използвате multipart()   -  person vmx    schedule 18.12.2013
comment
@vmx премахна съставен ред, но няма ефект. същото отново.   -  person Onur Özkan    schedule 18.12.2013
comment
опитайте да добавите тези: form.encoding = 'utf-8'; form.type = 'multipart'; преди да направите form.parse()   -  person vmx    schedule 18.12.2013
comment
добавете enctype="multipart/form-data" и в тага на html формуляра.   -  person vmx    schedule 18.12.2013
comment
вижте това за работещ пример: stackoverflow.com/a/20372845/1520518   -  person vmx    schedule 18.12.2013
comment
@vmx Опитвам се да използвам urlencoded, а не multipart. така че и тези решения не работят.   -  person Onur Özkan    schedule 18.12.2013
comment
между другото, след като премахнах app.use(express.urlencoded()) проработи, но все още няма стойност на form.type в обект на формуляр. и мисля, че все още има някакъв проблем с формулярите ми.   -  person Onur Özkan    schedule 18.12.2013
comment
Връзката, която споделих, не изисква да използвате multipart(), споменах да избягвате използването на multipart   -  person vmx    schedule 18.12.2013