openrosa-form-submission-middleware
v1.1.0
Published
Express middleware for receiving OpenRosa xform submissions
Downloads
119
Readme
OpenRosa FormSubmissionAPI middleware
This is based on connect-multiparty by Andrew Kelley.
It is express middleware for multiparty to process OpenRosa form submissions from ODK Collect following the OpenRosa FormSubmissionAPI spec.
The xml form submission is returned as req.body and any attached files are returned as req.files.
Incoming files are stored on disk in the tmp
folder and must be cleanup up afterwards with something like:
req.files.forEach(function(file) {
fs.unlink(file.path, function() {});
});
Usage
var openrosa = require('openrosa-form-submission-middleware');
var openrosaMiddleware = openrosa();
app.use('/submission', openrosaMiddleware);
app.post('/submission', function(req, res) {
console.log(req.body, req.files);
// don't forget to delete all req.files when done
});
API
openrosa(options)
Returns express middleware for receiving and processing OpenRosa form submissions.
options.maxContentLength
sets the maximum content length of form submissions (defaults to 10Mb)options.secure
will redirect OpenRosa clients like ODK Collect to use https to send a submission (it does this by responding to the initial HEAD request from the client with a 204 with the Location headers set with the https protocol set)
Other options are passed directly on to multiparty.