Introduction to Raw-Body Module
The raw-body
module is a vital tool for developers working with Node.js, designed to efficiently read and parse the body of a readable stream. Whether you are dealing with JSON payloads, text, or other types of data, raw-body
can handle it all.
Key APIs of Raw-Body Module
Installation
npm install raw-body
Example API Usage
Basic Usage
const getRawBody = require('raw-body') const http = require('http')
const server = http.createServer((req, res) => {
getRawBody(req, (err, body) => {
if (err) {
res.statusCode = 500
res.end('Error reading body')
return
}
res.end(body)
})
})
server.listen(3000)
Advanced Options
const getRawBody = require('raw-body')
getRawBody(req, {
length: req.headers['content-length'],
limit: '1mb',
encoding: 'utf8'
}, (err, body) => {
if (err) {
console.error(err)
return
}
console.log(body)
})
Handling Different Data Encodings
const getRawBody = require('raw-body') const http = require('http')
const server = http.createServer((req, res) => {
getRawBody(req, { encoding: 'base64' }, (err, body) => {
if (err) {
res.statusCode = 500
res.end('Error reading body')
return
}
res.end(body)
})
})
server.listen(3000)
Usage with Promises
const getRawBody = require('raw-body')
async function readBody(req) {
try {
const body = await getRawBody(req, { encoding: true })
console.log(body)
} catch (err) {
console.error(err)
}
}
Complete Application Example
const getRawBody = require('raw-body') const express = require('express') const app = express()
app.post('/data', async (req, res) => {
try {
const body = await getRawBody(req)
res.status(200).send(body)
} catch (err) {
res.status(400).send('Error reading body')
}
})
app.listen(3000, () => {
console.log('Server running on port 3000')
})
The raw-body
module proves to be a powerful and flexible utility, handling diverse data formats efficiently and simplifying the process of reading raw request bodies in Node.js applications.
Whether you’re dealing with small payloads or need precise control over input lengths and encodings, integrating raw-body
in your applications can streamline your development process and enhance your resource handling capabilities.
To explore more about its functionalities and advanced use-cases, check out the official raw-body
documentation on GitHub.
Happy Coding!
Hash: 10faf7dc46efadbdafe80763a0508913435987609b2591e606095b9c4547f49c