Genesis
This commit is contained in:
35
src/http.js
Normal file
35
src/http.js
Normal file
@@ -0,0 +1,35 @@
|
||||
export function serverTimestamp() {
|
||||
const d = new Date();
|
||||
const pad = (n) => String(n).padStart(2, '0');
|
||||
return `${d.getFullYear()}-${pad(d.getMonth() + 1)}-${pad(d.getDate())} ${pad(d.getHours())}:${pad(d.getMinutes())}:${pad(d.getSeconds())}`;
|
||||
}
|
||||
|
||||
export function readBody(req) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const chunks = [];
|
||||
req.on('data', (chunk) => chunks.push(chunk));
|
||||
req.on('end', () => resolve(Buffer.concat(chunks)));
|
||||
req.on('error', reject);
|
||||
});
|
||||
}
|
||||
|
||||
export function sendJson(res, statusCode, body) {
|
||||
const responseBody = JSON.stringify(body);
|
||||
res.writeHead(statusCode, {
|
||||
'Content-Type': 'application/json; charset=utf-8',
|
||||
'Content-Length': Buffer.byteLength(responseBody),
|
||||
});
|
||||
res.end(responseBody);
|
||||
}
|
||||
|
||||
export function sendBinary(res, statusCode, buffer, contentType) {
|
||||
res.writeHead(statusCode, {
|
||||
'Content-Type': contentType,
|
||||
'Content-Length': buffer.length,
|
||||
});
|
||||
res.end(buffer);
|
||||
}
|
||||
|
||||
export function normalizePath(pathname) {
|
||||
return pathname.replace(/^\/api(?=\/v1\/)/, '');
|
||||
}
|
||||
Reference in New Issue
Block a user