+
See the Stream class below.
-+multipart.cat(message)+ ::
- Returns a promise.
- - on success: Returns a multipart.Stream object representing the completed
- message. The body of each part is saved on the `body` member.
- - on error: Returns an instanceof Error object. This indicates
- that the message was malformed in some way.
++multipart.cat(message, callback)+ ::
+ On success, +callback+ is called with +(null, stream)+ where +stream+ is a
+ +multipart.Stream+ object representing the completed message. The body of
+ each part is saved on the `body` member.
+
- *Note*: This function saves the *entire* message into memory. As such,
- it is ill-suited to parsing actual incoming messages from an HTTP request!
+ On error, +callback+ is called with +(err)+ where +err+ is an instanceof
+ the +Error+ object. This indicates that the message was malformed in some
+ way.
+ +
+ *Note*: This function saves the *entire* message into memory. As such, it
+ is ill-suited to parsing actual incoming messages from an HTTP request!
If a user uploads a very large file, then it may cause serious problems.
No checking is done to ensure that the file does not overload the memory.
- Only use multipart.cat with known and trusted input!
+ Only use +multipart.cat+ with known and trusted input!
+
=== +multipart.Stream+
// rack up as much memory usage as they can manage. This function
// buffers the whole message, which is very convenient, but also
// very much the wrong thing to do in most cases.
-function cat (message) {
- var p = new (events.Promise),
- stream = parse(message);
+function cat (message, callback) {
+ var stream = parse(message);
stream.files = {};
stream.fields = {};
stream.addListener("partBegin", function (part) {
stream.addListener("body", function (chunk) {
stream.part.body = (stream.part.body || "") + chunk;
});
- stream.addListener("error", function (e) { p.emitError(e) });
- stream.addListener("complete", function () { p.emitSuccess(stream) });
- return p;
+ stream.addListener("error", function (e) { p.emitError(e)
+ if (callback) callback(e);
+ });
+ stream.addListener("complete", function () {
+ if (callback) callback(null, stream);
+ });
};
// events: