Validación de datos que llegan al API REST en NodeJS

En express.js podemos utilizar validator.js

Instalar con: $ npm install –save express-validator

Por ejemplo tenemos este codigo para crear nuevo usuario:

const express = require('express');
const app = express();

app.use(express.json());
app.post('/user', (req, res) => {
  User.create({
    username: req.body.username,
    password: req.body.password
  }).then(user => res.json(user));
});

Antes de crear usuario nuevo con el POST podemos verificar los datos:

// ...rest of the initial code omitted for simplicity.
const { check, validationResult } = require('express-validator/check');

app.post('/user', [
  // username must be an email
  check('username').isEmail(),
  // password must be at least 5 chars long
  check('password').isLength({ min: 5 })
], (req, res) => {
  // Finds the validation errors in this request and wraps them in an object with handy functions
  const errors = validationResult(req);
  if (!errors.isEmpty()) {
    return res.status(422).json({ errors: errors.array() });
  }

  User.create({
    username: req.body.username,
    password: req.body.password
  }).then(user => res.json(user));
});

Ahora si hay problemas en validación, tendremos de respuesta:

{
  "errors": [{
    "location": "body",
    "msg": "Invalid value",
    "param": "username"
  }]
}

Mas información en https://express-validator.github.io/docs/

Como habilitar acceso al usuario ‘sa’ a Sql server en remoto

Si al acceder en remoto con MS Sql Server Manager o por linea de comandos aparece el mensaje de error de derechos, este post puede resolver este problema.

TCP configuration
Launch: SQL Server Configuration Manager
Expand: SQL Server Network Configuration
Double click: TCP/IP
Change Enabled to Yes
Switch to tab: IP Addresses
Clear out TCP Dynamic Ports
Fill in the port on which you want to accept remote access calls. E.g.: TCP Port: 1433

“sa” user configuration
Launch: SQL Server Server Management Studio
Login by using Windows Authentication
Right click on your server and choose Properties
Select tab Security
Set Server Authentication to SQL Server and Windows Authentication mode
Save configuration
In the left tree, expand Security > Logins
Double click on the sa user
Uncheck: Enforce password policy and Enforce password expiration
Assign a password for the sa user
Open tab Status and put Login to Enabled


NodeJS: primer servidor REST

Mi primer servidor REST por si es util a alguien

Instalación:
$ npm init
$ npm install
$ npm install express –save // Framework ExpressJS
$ npm install nodemon // Herramienta para ejecutar proyecto y aplicar cambios cada vez que se graba sin reiniciar la aplicación.
$ npm install express-generator –save // Generador de proyectos ExpressJS
$ express Proyecto1 // Generamos proyecto tipo express “Proyecto1”
$ cd Proyecto1
$ npm install
$ npm install chance –save
$ npm i morgan –save // log de peticiones GET / POST
$ npm i winston // gestion de errores

Instalación para base de datos:
1. MongoDB instalar desde pagina web oficial.
2. En proyecto instalar Mongoose.js: $ npm i mongoose
3. Añadir modulo “nconf” para guardar ruta a BD y puerto: npm i nconf

Detalles de instalación:
Para que “npm” apunta libreria en “package.json” usar: “npm install chance –save” (change es el nombre de libreria, con –save indicamos que apunta libreria en fichero “package.json”).


Despues:
– Para ejecutar aplicación: $ npm start
– Para ejecutar pero que tenga en cuenta si cambiamos algo sin reejecutar: $ nodemon app.js
– Para ejecutar en modo producción: $ NODE_ENV=production npm start
– Para ejecutar base de datos (desde su PATH): mongod. mongo


Para utilizar control de acceso podemos usar OAuth 2.0, Passport.js:
1. Faker
2. oauth2orize
3. passport
4. passport-http
5. passport-http-bearer
6. passport-oauth2-client-password


Интересные цитаты

Отрывки идей, цитаты, даты, персоны и т.д.

  • Ум – сад/огород. Надо ухаживать. Бизнес – корабль и ватерлиния.
  • На олимпу толпой не ходят
  • Кесарь Нерон 666
  • Бог Атон (солнца)
  • Египет, людям. Эхнотон

Libros interesantes para leer

Listado de libros que pueden ser interesantes. Básicamente relacionados con negocios, programación, futbol, vida mas sana, etc.

  • Piense y hagase rico. Napoleon Hill.
  • La magia de pensar en grande. David J. Schwartz.
  • Привычка самосовершенствования. Дэнни Дайер.
  • Процветание. Чарльз Мурлок.
  • Ayn Rand:
    1. La rebelión de Atlas.
    2. Философия кому она нужна.
    3. Источник.
    4. ДОбродетель эгоизма.
  • О. Уэйн Рэнд:
    1. Менталитет Мидэса.
    2. Как собрать много уроневый станок.
  • Рассылка Рэнди Гейдж.com
  • Революция добра. Пол Пилцер.
  • Книга Даймондов о здоровом питании.
  • Привычка мыслить. Джеймс Адам.
  • Jack Welch. Ganar
  • Динамические законы процветания. Кондор (припадобная)

Indice de herramientas de Xamarin

Breve nombramiento de las herramientas de Xamarin, para ir repasando y no olvidar lo que existe y que podemos utilizar.

  1. Unity. paquete nuget. Contenedor de dependencias. Proyecto pertenece a Microsoft. Permite controlar mas facilmente las instancias ViewModels.
  2. MVVMCross. Framework multiplataforma que permite desarrollar aplicaceions multiplataforma. Sobretodo para enlace entre datos.
  3. XAML. Lenguaje de interfaz si usamos Xamarin.Forms.
  4. Paginas en Xamarin.Forms. Diferentes tipos de paginas.
  5. Layouts en Xamarin.Formas. Contenedores.
  6. Android: Actividades e Intents.
  7. Interfaz de usuario Android, arvhivos AXML.
  8. Layouts disponibles en Android.
  9. Controles basicos en Android.
  10. Storyboards. En iOS.
  11. AutoLayout. En iOS.
  12. Controles basicos en iOS.

Herramientas adicionales:

A. Xamarin Test Cloud. Dispositivos en la nueve para hacer pruebas.
B. Xamarin Insights. Analiticas en aplicaciones Xamarin.
C. Xamarin Android Player. Emular Android.
D. Xamarin Inspector. Inspección del arbol de efectos visuales.
E. Xamarin Live Player. Ver cambios al vuelo.

Como trabajar con base de datos:
https://javiersuarezruiz.wordpress.com/page/8/

Como crear con XAML interficie del usuario cross-platform UIs:
https://docs.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/


Iconos gratuitos para aplicaciones:
https://icons8.com/icons/ios


Haplogrupo R1a, R1b Indice M269

De donde vienen y que significan

Tutankamón tiene haplogrupo R1b. En Europa R1b 60% tienen este haplogrupo. 

El Indice M269 de haplogrupo R1b viene desde Llanura europea oriental (Russkaya ravnina).

R1a – haplogrupo que es caracteristico para pueblos eslavos. R1b es haplogrupo caracteristico para pueblos eslavos, pero menos que R1a (1:10).

Gestión de modelos con “bundle”

Acabo de descubrir un sistema para gestión de todo tipo de código y dependencias, que no utilizaba para las paginas web. Se llama Webpack

Este bundle https://webpack.js.org permite tener el código mas ordenado, optimizar ancho de banda y gestionar bien las dependencias. Pero el futuro ya esta llegando con ECMAScript, que ya esta soportado por navegadores, así que solo es una herramienta buena pero supongo que dentro de un tiempo ya estará obsoleta.