Binary & Form-Data
Newgate handles binary uploads and multipart/form-data efficiently.
Binary Data
For Content-Type: application/octet-stream, the body is
exposed as a Node.js Buffer.
app.post('/upload-raw', (req, res) => {
// req.body is a Buffer
const size = req.body.length;
fs.writeFileSync('output.bin', req.body);
res.send(`Received ${size} bytes`);
});
Form-Data
For multipart/form-data, Newgate parses both fields and
files.
app.post('/upload', (req, res) => {
const { fields, files } = req.body;
console.log('User:', fields.username);
if (files.avatar) {
console.log('Avatar:', files.avatar.filename);
// files.avatar.buffer contains the file data
}
});
Options
You can configure upload limits to prevent DoS attacks.
const options = {
fileSizeLimit: 10 * 1024 * 1024, // 10MB (default)
memoryLimit: 50 * 1024 * 1024, // 50MB (default)
fileCountLimit: 10 // Max files (default)
};
Last updated: 12/11/2025
Edit on GitHub