Skip to content

jackrobertscott/incoming-message-parser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

incoming-message-parser

Parse the contents of an incoming message a.k.a. a server request.

Install

npm install incoming-message-parser

Usage

To use incoming-message-parser in your Node.js application, first import the functions you need. Then, you can use these functions to parse JSON or multipart/form-data from incoming HTTP requests.

Parsing JSON:

import { IncomingMessage } from 'http';
import { parseJson } from 'incoming-message-parser';

async function handleRequest(request: IncomingMessage) {
  try {
    const jsonData = await parseJson(request, request.headers["content-type"]);
    // Use jsonData here
  } catch (error) {
    console.error('Error parsing JSON:', error);
  }
}

Parsing Multipart/Form-Data:

import { IncomingMessage } from 'http';
import { parseMultipart } from 'incoming-message-parser';

async function handleRequest(request: IncomingMessage) {
  try {
    const formData = await parseMultipart(request, request.headers["content-type"]);
    // Use formData here
  } catch (error) {
    console.error('Error parsing form data:', error);
  }
}

API

parseJson(requestStream: Readable, contentTypeHeader: string): Promise<any>

Parses a JSON body from an HTTP request. Throws an error if the content type is not application/json.

parseMultipart(requestStream: Readable, contentTypeHeader: string): Promise<{ [key: string]: string | FileData }>

Parses a multipart/form-data body from an HTTP request. Returns an object containing the parsed data. Throws an error if the content type is not multipart/form-data or if the boundary is not found.

FileData Interface

Represents the data structure for file information in multipart data.

  • body: Buffer - The file data.
  • fileName: string - The name of the file.
  • encoding: string - The encoding of the file.
  • mimeType: string - The MIME type of the file.

getMimeTypeFromBuffer(buffer: Buffer): string

Determines the MIME type of a file based on its buffer. Throws an error if the MIME type is unknown.

Contributing

Contributions are always welcome! Please read the contributing guide on our GitHub repository for details on our code of conduct, and the process for submitting pull requests.

License

This project is licensed under the MIT License.

Support

If you have any questions or issues, feel free to open an issue on the GitHub repository.

About

Parse the content of an incoming message a.k.a. a server request.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published