1. Teste Unitário
1.1. Problemas
1.1.1. Timeout
2. Serviço de inicialização
2.1. PM2
2.2. Nodemon
3. Json
3.1. BodyParse
4. API
4.1. Serviço de API
4.1.1. Node Resful
5. ORM
5.1. Sequelize
5.1.1. Update uma coluna
5.1.2. Operators
5.1.2.1. Manual | Sequelize
5.1.3. Raw
5.1.3.1. Sequelize query is giving TypeError: undefined is not a function
5.1.4. Timeout
5.1.4.1. Increase
5.1.5. Order By
5.1.5.1. Ordenar por outra model que esteja associada
6. Cors
6.1. Habilitar
7. Logs
7.1. Escrever log no cloudwatch
7.2. pinojs/pino
8. Express
8.1. Query
8.1.1. Convert em números os dados que são enviados via query request
8.1.1.1. express-query-int
8.2. Formas de obter dados
8.2.1. Query Params: ?teste=1
8.2.1.1. const {nome} = req.query;
8.2.2. Route params: /users/1
8.2.2.1. /users/:id const {id} = req.params;
8.2.3. Request Body: {"name": "jay"}
8.2.3.1. const {name} = req.body;
8.3. Habilita o Express a aceitar json na requisição
8.3.1. server.use(express.json());
9. ES6
9.1. Módulos
9.1.1. Compilador
9.1.1.1. Sucrase
9.1.1.2. Babel
10. Scaffods
10.1. The web's scaffolding tool for modern webapps | Yeoman
11. YUP
11.1. Validação com número e null
11.1.1. yup.number().nullable() does not allow `null` value · Issue #500 · jquense/yup
12. NODE_ENV
12.1. erros
12.1.1. NODE_ENV’ não é reconhecido como um comando interno ou externo, um programa operável ou um arquivo em lotes
13. Typescript
13.1. Typeorm
13.1.1. erros
13.1.1.1. has no initializer and is not definitely assigned in the constructor.
13.1.1.1.1. Try adding "strictPropertyInitialization": false to your compiler options.
13.1.2. ENUM
13.1.2.1. https://stackoverflow.com/a/45153609/821826
13.1.3. where in
13.1.3.1. [Question] How to query IN Array with Typeorm's repository API? · Issue #1239 · typeorm/typeorm
13.1.4. One to One
13.1.4.1. typeorm/typeorm
13.1.5. Relation inside relation
13.1.5.1. [Question] Is it possible to include Nth-level relationship data using find options? · Issue #1270 · typeorm/typeorm
13.2. Error letra maíscula - only in casing
13.2.1. "forceConsistentCasingInFileNames": false, in tsconfig.json
13.3. Buscar dentro do enum
13.4. If com enum
13.4.1. if (faqType in faqTypesEnum) {
13.5. Type of
13.6. QueryBuilder
13.6.1. Query Builder - Select using Query Builder - 《TypeORM v0.2.20 Document》 - 书栈网 · BookStack
13.6.2. Order By
13.6.2.1. query = query.orderBy('questions.name', 'ASC');
13.7. Where
13.7.1. Json Array
13.7.1.1. 'services.animal_types::jsonb @> \'["' + animal_type + '"]\'::jsonb',
13.8. Erros
13.8.1. Looks like this entity is not registered in current "default" connection?
13.8.1.1. Error: RepositoryNotFoundError: No repository for [Enitity] was found. Looks like this entity is not registered in current "default" connection? · Issue #3017 · typeorm/typeorm
14. Yarn
14.1. comandos --save ou --save-dev
14.1.1. Se você está acostumado ao npm, você pode estar esperando usar --save ou --save-dev. Esses comandos foram substituídos por yarn add e yarn add --dev. Para mais informações, veja a documentação do yarn add.
15. Joi Celebrate Validação
15.1. Enum
15.1.1. import UserTypesEnum from '@shared/enums/userTypes'; preUserRouter.post( '/', celebrate({ [Segments.BODY]: { user_type: Joi.string() .valid(UserTypesEnum.MEMBER, UserTypesEnum.CUSTOMER, UserTypesEnum.ONG) .required(),
15.2. Validação condicional
15.2.1. Conditional rule based on value of another key · Issue #194 · hapijs/joi
15.2.2. Joi.object({ guest_user_id: Joi.string(), user_id: Joi.any().when('guest_user_id', { is: Joi.exist(), then: Joi.string().uuid(), otherwise: Joi.string().uuid().required() }) })
15.3. Validando a data minima de 18 anos
15.3.1. Question: Validate Age · Issue #1268 · hapijs/joi
15.4. Array Validate
15.4.1. service_types: Joi.array() .items( Joi.string() .valid(ServiceTypesEnum.FACE_TO_FACE, ServiceTypesEnum.REMOTE) .required(), ) .required(),
15.4.2. Joi — awesome code validation for Node.js and Express
15.5. Teste
15.5.1. hapi.dev
15.6. Documentation
15.6.1. sideway/joi