Saltar al contenido
Tratar con Node.js y Microsoft SQL Server: Parte 1

Tratar con Node.js y Microsoft SQL Server: Parte 1

En una serie de artículos veremos cómo usar Node.js con algunos de los productos y plataformas más populares como SQL Server, MongoDB, Microsoft Azure, cómo crear aplicaciones usando jQuery, jQuery UI y Ignite UI con Node.js

8min read

En una serie de artículos veremos cómo usar Node.js con algunos de los productos y plataformas más populares como SQL Server, MongoDB, Microsoft Azure, cómo crear aplicaciones usando jQuery, jQuery UI y Ignite UI con Node.js

El primer post está dedicado a Node y Microsoft SQL Server. Inicialmente, expliquemos por qué muchas empresas y profesionales prefieren utilizar Node.js en sus soluciones.

Why Node.js?

Node.js, para aquellos que no han oído hablar de él, es esencialmente JavaScript del lado del servidor.

Puedes echar un vistazo a algunas de las ventajas a continuación:

  • Prácticamente no requiere instalación
  • Muy ligero (un exe estático de 7 MB para la plataforma MS Windows)
  • Node.js fomenta las buenas prácticas de software listas para usar, como la programación asíncrona y la inversión de control.
  • Node.js uses JavaScript syntax.
  • ¡Hay más de 100 000 000 de desarrolladores WEB en todo el mundo que usan JavaScript!
  • La razón realista:
    Las aplicaciones multiplataforma con JS serán más rápidas y sencillas
  • Las partes buenas de JavaScript son realmente increíbles
  • Un idioma para el navegador y el servidor
  • Async de forma predeterminada
  • Más de 1 millón de solicitudes simultáneas

 

Pero no es solo otro lenguaje de programación de moda: empresas como LinkedIn y Walmart ya lo están usando, y muchas otras empresas de TI de errores ya han anunciado que usan Node.js o agregarán soporte para Node para sus plataformas. En julio de 2011, Microsoft portó Node.js para MS Windows y más tarde, en noviembre de 2011, anunciaron el soporte de Microsoft Azure (anteriormente Windows Azure) para Node.js

Node.js utiliza también para los Servicios móviles de Microsoft Azure

Node se utiliza como plataforma predeterminada para el back-end. Funciona con Azure SQL Database y se ofrece de forma predeterminada para los desarrolladores.
Solo necesitan conocer las asignaciones de tipos JSON a SQL

Asignaciones de tipos de JSON a SQL: Servicios móviles de Azure con Node.js

JASON ValueT-SQL Type

Numeric values (integer, decimal,
floating point)

Float(53)

Booleano

Bit

Fecha y hora

DateTimeOffset(3)

Cadena

Nvarchar(max)

Hay muchos módulos que implementan soporte para Microsoft SQL Server. No es fácil elegir el módulo más adecuado para un caso concreto.

¿Qué Node.js conductor elegir?

¿Qué Node.js conductor elegir?

El objetivo de este artículo es resumir los módulos node.js más populares para MS SQL Server. Compararemos los módulos y describiremos sus ventajas y desventajas

Node.js Modules for Microsoft SQL Server

#N%Node.js Module
#120.7%

node-sqlserver

Microsoft Driver for Node.js for SQL Server

(Solo Windows)

#218.0%

tedious

Un controlador TDS, para conectarse a MSSQLServer 

#312.3%

node-tds

Cliente TDS para conectarse a Microsoft SQL Server

#41.5%

mssqlhelper

Microsoft SQL Server database helper

#50.4%

mssqlx

NodeJs Microsoft SQL Server Command Line Interface

#60.2%

msnodesql

Microsoft Driver for Node.js for SQL Server

(Solo Windows)

#7N / A

node-sqlserver-unofficial

Microsoft Driver for Node.js for SQL Server – unofficial distribution

#8N / AEnde.js y Edge-sql
Compilador de SQL para edge.js. Permite acceder a bases de datos SQL desde Node.js utilizando Edge.js y ADO.NET.
  • node-sqlserver & msnodesql

Ambos controladores usan el mismo código del repositorio de GitHub –https://github.com/Azure/node-sqlserver, pero usan diferentes paquetes npm.

Este es un controlador de Node.js de Microsoft para SQL Server y Azure SQL Database: Es un módulo Node.js, basado en SQL Server Native Client 11.0, disponible como Microsoft SQL Server 2012 Native Client y se puede encontrar en el archivo
SQLCaracterística de Server 2012Empaquetar.

Hay problemas con node-sqlserver / msnodesql y Windows 7.x / Windows 8.x.
Estos módulos requieren requisitos previos antes de instalar el controlador:

  1. Node.js: use la última versión si es posible, pero se ha probado en el nodo 0.6.10 y posteriores
  2. node-gyp – latest version installed globally (npm install -g node-gyp)
  3. python 2.7.x – para node-gyp (asegúrese de que esté en la ruta)
  4. Visual C++ 2010: la edición Express está disponible gratuitamente en Microsoft
  5. SQL Server Native Client 11.0: disponible como Microsoft SQL Server 2012 Native Client que se encuentra en SQL Server 2012 Feature Pack

Es una sobrecarga adicional instalar estos módulos en las plataformas reales de Windows: debe tener algunas versiones antiguas de diferentes bibliotecas y marcos. Esa es la razón para no recomendar el uso del controlador "oficial".

 

  • node-sqlserver-unofficial

Se trata de una distribución binaria no oficial de ese controlador (node-sqlserver /msnodesql ) que utiliza el mismo repositorio de GitHub –https://github.com/Azure/node-sqlserver.
si planea usar este controlador, no es necesario compilar desde el código fuente (lo que requiere Visual Studio y confunde totalmente a algunas personas). Se ejecuta tanto en x86 como en x64 y con las versiones de nodo 0.8 y 0.10. No es necesario usar soluciones alternativas para ejecutar node-sqlserver-unofficial con Sitios web de Azure.

 

  • tedious

Es un controlador TDS, para conectarse a las bases de datos de Microsoft SQL Server. Tedious es una implementación del protocolo TDS, que se utiliza para interactuar con instancias de SQL Server de Microsoft. Se pretende que sea una implementación bastante delgada del protocolo, sin demasiada funcionalidad adicional. Tedious es JavaScript puro, al igual que sus dependencias. (la fuente es CoffeeScript). Por lo tanto, debería ejecutarse sin cambios en cualquier plataforma en la que se admita Node. El tedioso controlador es compatible con todas las versiones de SQL Server desde 2000 hasta 2014. Es posible que se admitan versiones posteriores del protocolo TDS en el futuro, pero es poco probable que se admitan versiones anteriores. Puede volverse tedioso como un paquete npm o desde GitHub –ttps://github.com/pekim/tedious 

 

  • node-tds

Este es un módulo que le permite acceder a Microsoft SQL Server 2005 y versiones posteriores. Es una implementación JS pura del protocolo TDS alojada en GitHub. Node-tds es similar a tedioso . Podría instalarse como un paquete tds npm o es el código fuente de GitHub https://github.com/cretz/node-tds.

 

  •  mssqlhelper

Es un asistente de Microsoft SQL Server. Mssqlhelper está escrito principalmente en el módulo JavaScript de un solo contribuyente.  El 21% de todas las líneas de código fuente son comentarios: en comparación, mssqlhelper solo tiene el 6% del código comentado. Puede instalar el paquete mssqlhelper npm aquí o encontrar el código fuente en GitHub: https://github.com/play175/mssqlhelper    

 

  • mssqlx

Es una interfaz de línea de comandos nodejs de Microsoft SQL Server.  Mssqlx debería funcionar muy bien en todas las plataformas, especialmente mac y unix, sin ningún otro controlador, solo nodejs. Actualmente, esto solo funciona en la línea de comandos, la próxima versión funcionará a través de la API de transmisión. El objetivo de este proyecto es crear una experiencia cli impresionante para consultar mssql, se espera que siga los pasos de futon-cli.  Puede usar este paquete mssqlx npm o encontrar el código fuente en GitHub: http://jackhq.tumblr.com/post/27992293043/mssqlx 

 

  • Edge.js and edge-sql

Edge.js es un módulo Node.js que permite que el código y los ensamblados de .NET se ejecuten en el mismo proceso con Node.js. Esto permite potencialmente a un desarrollador de Node.js aprovechar tecnologías que tradicionalmente han sido muy difíciles o imposibles de usar en el pasado. Puede crear bibliotecas .NET con toda la lógica de cómo conectarse a MS SQL Server, ejecutar consultas, manejar los resultados y puede usar estas bibliotecas en aplicaciones Node.js usando Edge-js.

Creación de una biblioteca de clases de .NET

public class Sample1
{
    public async Task<object> Invoke(object input)
   {
         ....
   }
   public async Task<List<SampleUser>> QueryUsers(int pageNumber, int pageSize)
   {
         ....
   }
}

Using a .NET library in Node.js + Edje.js application

// Set up the assembly to call from Node.js
var querySample = edge.func({
    assemblyFile: 'EdgeSampleLibrary.dll',
    typeName: 'EdgeSampleLibrary.Sample1',
    methodName: 'Invoke'
});

Edge-sql es un compilador de SQL para edge.js. Permite acceder a bases de datos SQL desde Node.js utilizando Edge.js y ADO.NET. A través de edge-sql, puede consultar SQL Server directamente mediante Edge.js

var params = {
    connectionString: "Data Source=IGBGSOFEV06\\SQLEXPRESS;Initial Catalog=NodeJS;Integrated Security=True“ ,
    source: "SELECT TOP 5 * FROM SampleUsers ORDER BY CreateDate DESC"
};
 
var getTopUsers = edge.func( 'sql‘ , params);

Pros y contras

 

driverprosContras
tedious, node-tds

Lightweight ,
JS implementation,
no dependencies

Funcionalidades limitadas
No se puede utilizar la autenticación integrada.

msnodesql, node-sqlserver

Más características

Many dependencies
No actual builds
Requires custom build
Requires Windows

node-sqlserver-unofficial

La misma base de código que msnodesql, node-sqlserver,
Pero la mayoría de los problemas relacionados con las distribuciones oficiales están solucionados

Sin apoyo oficial

Requires Windows

mssqlhelperEs una implementación JS pura del protocolo TDSSolo de un colaborador
Funcionalidades limitadas.
mssqlxMssqlx funciona muy bien en todas las plataformas, especialmente mac y unix, sin ningún otro controlador
Basado en tedioso
Solo funciona en la línea de comandos
Edge.js and edge-sql

puede ejecutar cualquier expresión SQL, puede conectarse mediante seguridad integrada

Requires .Net 4.5

Solo se puede ejecutar en Windows

En la siguiente parte de este artículo, puede aprender a usar diferentes módulos de Node.js para MS SQL Server. Echaremos un vistazo a las mejores prácticas y cubriremos diferentes casos de uso.

If you want more information about how to use Microsoft SQL Server & Node.js feel free to contact me at mmateev@infragistics.com

Puede obtener más información sobre Azure Bootcamp Bulgaria si nos sigue en Twitter @mihailmateev y @ Infragistics y mantenerse en contacto en Facebook, Google+, LinkedIn y Infragistics grupo de usuarios de amigos.

Solicitar una demostración