Fork me on GitHub Connect Form

Connect Form

index

index.js

Module dependencies.

var utils = require('connect/utils'),
    formidable = require('formidable');

Setup form with the given options.

Options

  • encoding Encoding used for incoming forms. Defaults to utf8
  • uploadDir Directory to save uploads. Defaults to “/tmp”
  • keepExtensions Include original extensions. Defaults to false

Examples

 var form = require('connect-form');
 var server = connect.createServer(
        form({ keepExtensions: true }),
        function(req, res, next){
            // Form was submitted
            if (req.form) {
                // Do something when parsing is finished
                // and respond, or respond immediately
                // and work with the files.
                req.form.complete(function(err, fields, files){
                    res.writeHead(200, {});
                    if (err) res.write(JSON.stringify(err.message));
                    res.write(JSON.stringify(fields));
                    res.write(JSON.stringify(files));
                    res.end();
                });
            // Regular request, pass to next middleware
            } else {
                next();
            }
        }
    );

  • param: Object options

  • return: Function

  • api: public

module.exports = function(options){
    options = options || {};
    return function(req, res, next){
        if (formRequest(req)) {
            var callback = function(){},
                form = req.form = new formidable.IncomingForm;
            utils.merge(form, options);
            form.complete = function(fn){ callback = fn; };
            form.parse(req, function(){
                callback.apply(this, arguments);
            });
        }
        next();
    };
};