Icaro Caldeira
Software Engineer @ RankMyApp, 9+ anos de experiência em desenvolvimento, Community leader @ Nerdzão, Community manager @ NodeBR, Speaker
app.use(function(err, req, res, next) {
console.error(err.stack);
res.status(500).send('Something broke!');
});
const bodyParser = require('body-parser');
const methodOverride = require('method-override');
app.use(bodyParser());
app.use(methodOverride());
app.use(function(err, req, res, next) {
// logic
});
import { ExceptionFilter, Catch, ArgumentsHost, HttpException } from '@nestjs/common';
import { Request, Response } from 'express';
@Catch(HttpException)
export class HttpExceptionFilter implements ExceptionFilter {
catch(exception: HttpException, host: ArgumentsHost) {
const ctx = host.switchToHttp();
const response = ctx.getResponse<Response>();
const request = ctx.getRequest<Request>();
const status = exception.getStatus();
response
.status(status)
.json({
statusCode: status,
timestamp: new Date().toISOString(),
path: request.url,
});
}
}
{
"data": [
{
"_id": "123456788999999",
"name": "TDC FLORIPA 2019",
"email": "TDCFloripa@2019.com",
"isAdmin": false,
"cpf": "123144123124123"
]
}
// specify the transform schema option
if (!schema.options.toObject) schema.options.toObject = {};
schema.options.toObject.transform = function (doc, ret, options) {
// remove the _isAdmin and cpf of every document before returning the result
delete ret.isAdmin;
delete ret.cpf;
return ret;
}
// without the transformation in the schema
doc.toObject();
// { _id: '123456788999999', name: 'TDC FLoripa', email: 'TDC@2019.floripa', isAdmin: false, cpf: '12312412314123' }
// with the transformation
doc.toObject();
// { _id: '123456788999999', name: 'TDC FLoripa', email: 'TDC@2019.floripa' }
By Icaro Caldeira
Software Engineer @ RankMyApp, 9+ anos de experiência em desenvolvimento, Community leader @ Nerdzão, Community manager @ NodeBR, Speaker