sql >> Base de Datos >  >> NoSQL >> MongoDB

Primeros pasos con Node.js, angular.js y MongoDB, relaciones de modelado y otros consejos de aceleración

Hacer aplicaciones en las que tiene un componente del lado del servidor y un componente del lado del cliente hace que las cosas sean un poco más complicadas que solo tener un marco del lado del servidor.

  • Cuando usa un marco del lado del cliente como AngularJS, todas sus plantillas se compilan del lado del cliente, no del lado del servidor. Esa es una gran diferencia con respecto al renderizado tradicional del lado del servidor. Eso significa que, en lugar de enviar HTML renderizado al cliente, enviaría JSON. Su servidor se convertiría esencialmente en una API RESTful con ubicaciones de seguridad.

  • No estoy muy familiarizado con AngularJS, más con Ember, pero esencialmente crearías un servicio tranquilo:https:/ /gist.github.com/2432692 . Eso se comunicaría con el servidor en una interfaz RESTful.

  • En el servidor, usando nodejs, usaría un ORM como Mongoose o algo similar. Puede crear relaciones, documentos, etc... Una nota, tendrá que duplicar sus modelos tanto en el servidor como en el cliente.

  • MongoDB usa bson, una codificación binaria de una cadena/objeto JSON serializado. Debido a que nodejs está construido con el motor JavaScript V8, JSON es un tipo de objeto natural, por lo que trabajar con MongoDB es extremadamente simple.

  • Servidor HTTP en NodeJS:NodeJS proporciona una implementación base para un servidor http. No es mucho, pero puede responder y manejar solicitudes. No hay sesión, cookie, soporte de autenticación, por lo que puede usar connect que se basa en el servidor http tradicional o use ExpressJS que se basa en ambos connect y el http normal servidor que proporciona el nodo. ExpressJS es extremadamente fácil de usar y funciona bien con backends RESTful.

Es bastante simple. Obtenga ExpressJS, cree una nueva aplicación, configure todas las cosas del lado del cliente (angularJS) y los sistemas de módulos si usa AMD, CommonJS, Browserify, etc...