@morojs/moro / response
Variable: response
constresponse:object
Defined in: src/core/utilities/response-helpers.ts:333
Standardized response helper object for convenient imports
Type Declaration
badRequest()
badRequest: (
message) =>ApiErrorResponse
Create a bad request error response
Parameters
message
string = 'Invalid request'
Returns
Example
app.post('/upload', async (req, res) => { if (!req.files?.file) { return res.status(400).json( badRequest('File is required') ); } // ... process file });
conflict()
conflict: (
message) =>ApiErrorResponse
Create a conflict error response (e.g., duplicate entry)
Parameters
message
string
Returns
Example
app.post('/users', async (req, res) => { const existing = await getUserByEmail(req.body.email); if (existing) { return res.status(409).json( conflict('Email already in use') ); } const user = await createUser(req.body); return success(user); });
error()
error: (
errorMessage,code?,message?) =>ApiErrorResponse
Create a standardized error response
Parameters
errorMessage
string
code?
string
message?
string
Returns
Example
app.get('/users/:id', async (req, res) => { const user = await getUser(req.params.id); if (!user) { return res.status(404).json( error('User not found', 'USER_NOT_FOUND') ); } return success(user); });
forbidden()
forbidden: (
message) =>ApiErrorResponse
Create a forbidden error response
Parameters
message
string = 'Insufficient permissions'
Returns
Example
app.delete('/users/:id', async (req, res) => { if (!req.user.roles.includes('admin')) { return res.status(403).json(forbidden()); } await deleteUser(req.params.id); return success({ deleted: true }); });
internalError()
internalError: (
message) =>ApiErrorResponse
Create an internal server error response
Parameters
message
string = 'Internal server error'
Returns
Example
app.get('/data', async (req, res) => { try { const data = await fetchData(); return success(data); } catch (err) { return res.status(500).json( internalError('Failed to fetch data') ); } });
notFound()
notFound: (
resource) =>ApiErrorResponse
Create a not found error response
Parameters
resource
string = 'Resource'
Returns
Example
app.get('/users/:id', async (req, res) => { const user = await getUser(req.params.id); if (!user) { return res.status(404).json(notFound('User')); } return success(user); });
rateLimited()
rateLimited: (
retryAfter?) =>ApiErrorResponse
Create a rate limit exceeded error response
Parameters
retryAfter?
number
Returns
Example
app.post('/api/send', async (req, res) => { const limited = await checkRateLimit(req.ip); if (limited) { return res.status(429).json( rateLimited(60) // 60 seconds retry ); } // ... process request });
success()
success: <
T>(data,message?) =>ApiSuccessResponse<T>
Create a standardized success response
Type Parameters
T
T = any
Parameters
data
T
message?
string
Returns
Example
app.get('/users', async (req, res) => { const users = await getUsers(); return success(users); }); // With message app.post('/users', async (req, res) => { const user = await createUser(req.body); return success(user, 'User created successfully'); });
unauthorized()
unauthorized: (
message) =>ApiErrorResponse
Create an unauthorized error response
Parameters
message
string = 'Authentication required'
Returns
Example
app.get('/admin', async (req, res) => { if (!req.user) { return res.status(401).json(unauthorized()); } return success(adminData); });
validationError()
validationError: (
details,message?) =>ApiErrorResponse
Create a validation error response
Parameters
details
ResponseValidationErrorDetail[]
message?
string
Returns
Example
app.post('/users', async (req, res) => { const validationErrors = validateUser(req.body); if (validationErrors.length > 0) { return res.status(400).json( validationError(validationErrors) ); } // ... create user });
Example
import { response } from '@morojs/moro'; app.get('/users', async (req, res) => { const users = await getUsers(); return response.success(users); }); app.get('/users/:id', async (req, res) => { const user = await getUser(req.params.id); if (!user) { return res.status(404).json(response.notFound('User')); } return response.success(user); });