Cómo vincular Node.js + Postgres con una aplicación AngularJS

Node.js junto con PostgreSQL y AngularJS es una buena pila. Esto también es lo que elegí inicialmente con Node on Fire: un marco web isomorfo de pila completa creado sobre Node.js, AngularJS y PostgreSQL. No considero MEAN como “la pila estándar para proyectos que usan Nodo” en absoluto.

Trataré de esbozar, conceptualmente, cómo conectar Node.js, AngularJS y PostgreSQL juntos, y daré algunas opciones sobre qué bibliotecas usar.


Conectar las tecnologías significa que, aproximadamente, necesita tres piezas para encajar:

  1. Un sistema que consulta su base de datos. Pero también crea su modelo de datos y, opcionalmente, incluso crea datos.
  2. Un sistema que expone sus datos en forma de API.
  3. Un sistema que consulta su API.

A continuación intentaré delinear las diferentes piezas por separado.

1. Cómo administrar su base de datos
De hecho, hay pg, que es una biblioteca de bajo nivel para consultar su base de datos postgres. Usar pg directamente le brinda una gran flexibilidad en cómo consultar o incluso estructurar sus datos, pero también es mucho trabajo. Por ejemplo, si desea crear tablas en su código, debe escribir estas consultas usted mismo.

Puede usar knex, que es un generador de consultas. Esta es una solución de nivel superior y Knex.js hace que sea un poco más fácil construir sus consultas y así consultar sus datos.

Alternativamente, hay varios ORM disponibles, como node-orm y sequelize, que lo ayudan a configurar su modelo de datos y consultar sus datos. Esta es una solución de alto nivel y generalmente es más fácil ya que tiene que escribir menos usted mismo, pero reduce la flexibilidad ya que depende de las funciones del ORM.

2. Cómo escribir tu API
Una vez que tenga un sistema para consultar sus datos, obviamente necesita una forma de exponer sus datos. Pero no todos los datos. Algunos datos pueden ser confidenciales, como todos los usuarios registrados, no todos deberían poder verlos. Esto significa que su API debe incluir un sistema de autenticación y autorización.

Para ayudarlo a diseñar su API, eche un vistazo a Transferencia de estado representacional. REST es un estilo popular que te ayuda a crear una API sólida.

express es una biblioteca de bajo nivel para crear tu API. Esto le brinda una gran flexibilidad, pero generalmente es mucho trabajo porque debe escribir todo usted mismo, desde el diseño de la API hasta los sistemas de autorización y autenticación.

3. Cómo consultar su API
Una vez que tenga su API, que consulta su base de datos, necesita algo en su lado del cliente para invocar su API. AngularJS ofrece varias soluciones para esto.

El servicio $ resource https://docs.angularjs.org/api/n… crea un objeto de recurso que funciona perfectamente con las API RESTful. Si ha diseñado e implementado una API RESTful, considere usar el servicio $ resource.

El servicio $ http https://docs.angularjs.org/api/n… le permite invocar cualquier API a través de HTTP.


En lugar de escribir cada componente usted mismo, también podría considerar usar un marco web. Por ejemplo, Node on Fire: un marco web isomorfo de pila completa construido sobre Node.js, AngularJS y PostgreSQL es un marco web isomorfo que estoy construyendo que utiliza Node.js, AngularJS y PostgreSQL. Meteor es otro marco completo que incluye soporte de terceros para meteor-stream / meteor-postgres y angular-meteor.

Espero que esto ayude a comenzar. ¡Buena suerte!

NODE.JS

CASA:

Node.js fue desarrollado por Ryan Dahl en 2009. Su última versión es v0.10.36. Node.js es una plataforma de código abierto del lado del servidor construida en el motor JavaScript de Google Chrome. Node.js es una plataforma para crear fácilmente aplicaciones de red rápidas y escalables. Node.js tiene varios atributos que lo hacen atractivo para la programación de redes a través de Internet. Node.js utiliza un modelo basado en eventos que lo hace efectivo y perfecto para aplicaciones de tiempo real con uso intensivo de datos. Node.js juega un papel crucial en la pila de tecnología de muchas compañías de alto perfil que dependen de sus características únicas. Node.js permite que JavaScript se use para secuencias de comandos del lado del servidor y ejecutar secuencias de comandos del lado del servidor para producir una página web dinámica.

CONFIGURACIÓN DEL MEDIO AMBIENTE:

Aunque, también puede ejecutar su código en línea, pero si está buscando un desarrollo serio de node.js, necesita configurar un entorno local. Necesita los siguientes dos programas para la configuración del entorno local de node.js (a) editor de texto y (b) instalables binarios de node.js. El editor de texto se usará para escribir su programa. Algunos ejemplos de editor de texto incluyen bloc de notas, comando de edición del sistema operativo, resumen, EMACS, etc. El nombre, la versión del editor de texto puede variar de un sistema operativo diferente, como el Bloc de notas que se utilizará en Windows.

ARQUITECTURA:

Node.js ofrece programación basada en eventos y los desarrolladores pueden crear servidores altamente escalables sin usar subprocesos, mediante el uso de un modelo simplificado de programación basada en eventos Node.js utiliza la arquitectura de “bucle de evento de subproceso único” para manejar múltiples clientes concurrentes. El modelo de procesamiento de Node.js se basa en el modelo basado en eventos de JavaScript. Como node.js sigue esta arquitectura, puede manejar más clientes concurrentes muy fácilmente.

COMPONENTES DE APLICACIÓN:

Node.js es una plataforma que contiene muchos componentes para desarrollar, probar e implementar aplicaciones empresariales.

Lista de componentes de Node.js:

·

Nodo CLI (es una plataforma que tiene una interfaz de línea de comandos para ejecutar comandos básicos y archivos de script)

·

NPM (significa administrador de paquetes de nodo y se utiliza para instalar, actualizar, desinstalar y configurar paquetes de node.js muy fácilmente)

·

Package.json (es un archivo de texto plano en formato JSON que se utiliza para administrar nuestra aplicación y describe información como el nombre de nuestra aplicación, las dependencias del módulo, las versiones del módulo, etc.)

·

Módulos de nodo (cuando instalamos node.js, por defecto solo se instala un módulo, es decir, módulo npm)

RECURSOS

Hay muchos más elementos que utiliza para crear una buena aplicación node.js. Además de la codificación de la aplicación, puede utilizar estos recursos para crear node.js: IDE (Eclipse con plugins node.js, jetbrains webstorm, cloud9 IDE y visual studio node.js toolkit) Herramientas de compilación de interfaz de usuario (gruñido, trago y yeoman) Marcos de diseño CLI (nodo CLI, Grunt-cli) (Marco de arranque de Twitter) Motor de plantillas (jade, EJS, Hogan.js).

NUEVAS CARACTERÍSTICAS:

·

Buffer: los métodos de buffer ahora aceptan como entrada inválida

·

Proceso secundario: se han mejorado los métodos fork y exeFile, las validaciones de argumentos y señales de cierre

·

Consola: eventos de error eliminados al usar el método de consola

·

Dominios: las instancias de promesa nativas ahora están disponibles en el dominio

·

Sistema de archivos: la clase de utilidad y la interfaz de cadena se han eliminado

MÓDULOS DE UTILIDAD:

·

Módulo del sistema operativo: proporciona una forma de usar el sistema operativo y le permite interactuar con el sistema operativo como Windows, Mac o Linux.

·

Módulo de ruta: se utiliza para manejar y transformar rutas de archivo.

·

Módulo de red: actúa como un contenedor de red y proporciona flujos de servidores y clientes.

·

Módulo DNS: proporciona funciones para realizar búsquedas DNS reales

·

Módulo de dominio: ofrece formas de manejar múltiples operaciones de E / S como un solo grupo.

Hay un módulo bastante bueno para Node.js llamado Sequelize que es básicamente un ORM y funciona bastante bien con Postgres. Manejará casi todo internamente y puede concentrarse en escribir solo el código Javascript.

La razón por la que todos los tutoriales hablan sobre MEAN es porque MEAN es la pila estándar para proyectos que usan Node.

¿Estás absolutamente convencido de usar Postgres? No es que haya algo malo con Postgres, lo uso con bastante frecuencia, pero Mongo es rápido de configurar.

Aparte de eso, el módulo Postgres para el nodo funciona bien, realmente no hay mejores prácticas para ello. Estás más o menos construyendo una aplicación MEAN pero con Postgres en lugar de Mongo, así que supongo que eso lo haría PEAN en su lugar.

Para la base de datos en sí, use las reglas habituales que usaría para las bases de datos de Postgres, el resto no será tan diferente en el lado del Nodo.

Si está buscando desarrollar una aplicación PostgreSQL / Express.js / AngularJS / Node.js, PEAN.JS podría ser un lugar útil para comenzar.
https://github.com/StetSolutions