MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Introdução ao Node.js, angular.js e MongoDB, modelagem de relações e outras dicas de aceleração


Fazer aplicativos onde você tem um componente do lado do servidor, bem como um componente do lado do cliente torna as coisas um pouco mais complicadas do que apenas ter uma estrutura do lado do servidor.

  • Ao usar uma estrutura do lado do cliente como o AngularJS, todos os seus modelos são compilados do lado do cliente, não do lado do servidor. Essa é uma grande diferença da renderização tradicional do lado do servidor. Isso significa que, em vez de enviar HTML renderizado para o cliente, você enviaria JSON. Seu servidor se tornaria essencialmente uma API RESTful com locais de segurança.

  • Não estou extremamente familiarizado com o AngularJS, mais com o Ember, mas você criaria essencialmente um serviço tranquilo:https:/ /gist.github.com/2432692 . Isso se comunicaria com o servidor em uma interface RESTful.

  • No servidor, usando nodejs, você usaria um ORM como Mongoose ou algo semelhante. Você pode criar relacionamentos, documentos, etc... Uma nota, você terá que duplicar seus modelos tanto no servidor quanto no cliente.

  • O MongoDB usa bson, uma codificação binária de uma string/objeto JSON serializado. Como o nodejs é construído usando o mecanismo JavaScript V8, o JSON é um tipo de objeto natural e, portanto, trabalhar com o MongoDB é extremamente simples.

  • Servidor HTTP no NodeJS:O NodeJS fornece uma implementação base para um servidor http. Não é muito, mas você pode responder e lidar com solicitações. Não há suporte a sessão, cookie, autenticação, então você pode usar connect que se baseia no servidor http tradicional ou usa o ExpressJS que se baseia em connect e o http normal servidor que o nó fornece. O ExpressJS é extremamente fácil de começar e funciona bem com back-ends RESTful.

É bem simples. Obtenha o ExpressJS, crie um novo aplicativo, configure todas as coisas do lado do cliente (angularJS) e sistemas de módulos se você usar AMD, CommonJS, Browserify, etc ...