# \[construindo-apis-rest-com-nodejs\] - Problema sequelize

**URL:** <https://forum.casadocodigo.com.br/t/construindo-apis-rest-com-nodejs-problema-sequelize/147>\
**Category:** Livros\
**Tags:** apis-rest-nodejs\
**Created:** [Março 27, 2016, 5:22am UTC](https://forum.casadocodigo.com.br/t/construindo-apis-rest-com-nodejs-problema-sequelize/147 "2016-03-27T05:22:53Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![thiagofaustino512](https://avatars.discourse-cdn.com/v4/letter/t/77aa72/32.png) [@thiagofaustino512](https://forum.casadocodigo.com.br/u/thiagofaustino512)\
**Post date:** [Março 27, 2016, 5:22am UTC](https://forum.casadocodigo.com.br/t/construindo-apis-rest-com-nodejs-problema-sequelize/147/1 "2016-03-27T05:22:53Z")

</div>

Boa noite, estou com problema ao usar o `set` no `define` do Sequelize. Estava fazendo alguns testes com `get` e `set`. Segue trecho de código abaixo:  
`name: { type: DataType.STRING, allowNull: false, validate: { notEmpty: true }, set: (val) => { this.setDataValue('name', val.toUpperCase()); } },`  
Simplesmente estava testando a conversão do valor da propriedade `name` para uppercase da entidade `User` usando o `set`, mas quando vou inserir um novo `User` ele da o seguinte erro:  
`TypeError: Cannot read property 'setDataValue' of undefined`

Acredito que seja algum problema de escopo, relacionado ao `this` dentro da função `set` usando ECMAScript 6.

Gostaria de saber se realmente estou certo, e qual seria a solução usando ECMAScript 6. Estou seguindo a documentação do [Sequelize: Getters & setters](http://docs.sequelizejs.com/en/latest/docs/models-definition/#getters-setters), sendo a única diferença estar usando a sintaxe do ECMAScript 6.

Desde já muito obrigado.

---

<div class="post-metadata">

**Author:** ![caio.ribeiro.pereira](https://yyz1.discourse-cdn.com/flex029/user_avatar/forum.casadocodigo.com.br/caio.ribeiro.pereira/32/8957_2.png) [@caio.ribeiro.pereira](https://forum.casadocodigo.com.br/u/caio.ribeiro.pereira)\
**Post date:** [Abril 4, 2016, 1:51pm UTC](https://forum.casadocodigo.com.br/t/construindo-apis-rest-com-nodejs-problema-sequelize/147/2 "2016-04-04T13:51:38Z")

</div>

Olá Thiago, acho que já respondi seu email em outro grupo, mas mesmo assim vou responder aqui.

Nem toda biblioteca esta compatível 100% com arrow-functions do ES6, e isso em alguns casos pode causar conflitos na keyword `this` não garantindo 100% referência do contexto da função.

Nesse caso mude para, declaração de function do ES5 que vai funcionar, veja abaixo:

```javascript
set: function(val) {
   this.setDataValue('name', val.toUpperCase());
}

```

---

<div class="post-metadata">

**Author:** ![thiagofaustino512](https://avatars.discourse-cdn.com/v4/letter/t/77aa72/32.png) [@thiagofaustino512](https://forum.casadocodigo.com.br/u/thiagofaustino512)\
**Post date:** [Abril 5, 2016, 3:12am UTC](https://forum.casadocodigo.com.br/t/construindo-apis-rest-com-nodejs-problema-sequelize/147/3 "2016-04-05T03:12:19Z")

</div>

Boa noite Caio, já respondesse no outro grupo sim, muito obrigado novamente.

Já que respondeu aqui também, é bom, porque fica registrado caso alguém passe pelo mesmo problema vai encontrar a solução aqui no fórum, abraço.
