1

我正在使用 node-formidable 来处理 Express/Nodejs 应用程序中的表单数据。我正在从 POSTman Chrome Extension 发送 POST vars。(顺便说一句,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 都返回 null。

4

0 回答 0