Fala Matehus!
Então, na construção da API, foram criados diversas funções no objeto da API. Eu achei muito semelhante a classes e métodos, e fiquei curioso para saber se: ao invés de criar um objeto com um conjunto de funções, se seria possível criar uma classe para API e utilizar métodos para realizar as ações no back end.
Por exemplo, ao invés de fazer desta forma:
const AuthApi = { _model : mongoose.model('Usuario') }
AuthApi.autentica = (req, res) => {
AuthApi._model
.findOne( {
login : req.body.login,
senha : req.body.senha
})
.then(
usuario => {
if (!usuario) {
console.log('Login e senha inválidos');
res.sendStatus(401);
} else {
const token =
jwt.sign( { login : usuario.login }, app.get('secret'), { expiresIn : 84600 });
console.log('Token criado e sendo enviado no header de resposta');
res.set('x-access-token', token);
res.end();
}
},
error => {
console.log(error);
res.sendStatus(401);
}
)
}
Fazer desta:
class AuthApi {
_model = mongoose.model('Usuario')
autentica(req, res) {
this._model.
findOne(....)
}
}