Método común para llamar a una función de nodo desde Angular Controller

Permítame prefijar esto con el que soy más nuevo en Node / Express.

Tengo una aplicación AngularJS que aprovecha Node.JS para administrar los requisitos de Azure Blob, como crear contenedores de blob de la siguiente manera:

function test(containerName) { blobSvc.createContainerIfNotExists(containerName, function (error, result, response) { if (!error) { // Container exists and allows // anonymous read access to blob // content and metadata within this container } }); }; test('blob4'); 

La función para crear un contenedor cuando se ejecuta desde server.js en Node funciona como se espera y crea un contenedor de blob. Sin embargo, necesito crear un contenedor de blobs al hacer clic en mi aplicación AngularJS. Imaginé utilizar las exportaciones para acceder y ejecutar las funciones creadas en Server.js, pero he visto cierta información mixta, especialmente cuando Express.js está en la imagen, para llamar a una función Node.js a través del lado del cliente de AngularJS ya que parece que en una aplicación Angular habría que hacer una llamada http (consulte la última respuesta en esta publicación: función de llamada en nodejs desde la aplicación angular ).

Mis preguntas son las siguientes:

1) Ya que mi aplicación actualmente utiliza Node, Express y Angular, necesitaría usar http en mi controlador Angular para ejecutar las funciones de Node / hacer todas las funciones escritas en Node / Server.js requieren $ http para ejecutarse si se llama a través del cliente AngularJS ¿Lado, incluso si no llaman a un servicio pero podría ser una función que realiza algo como matemáticas? Ejemplo de una llamada basada en Express:

 function MyCtrl($scope, $http) { // $http is injected by angular's IOC implementation // other functions and controller stuff is here... // this is called when button is clicked $scope.batchfile = function() { $http.get('/performbatch').success(function() { // url was called successfully, do something // maybe indicate in the UI that the batch file is // executed... }); } } 

2) O es el uso de exportaciones, como las enumeradas en esta publicación una práctica más común, donde la función se define como una exportación y luego se importa a través de un requisito: ¿Cuál es el propósito de Node.js module.exports y cómo lo usa? . Si es así, ¿haría algo como lo siguiente ?:

Archivo Node Server.JS:

 var myFunc1 = function() { ... }; exports.myFunc1 = myFunc1; 

Dentro de un controlador AngularJS (sin incluir como una dependencia):

 var m = require('pathto/server.js'); m.myFunc1(); 

3) Por último, ¿estoy completamente equivocado y hay una práctica común para llamar a las funciones de node.js desde un controlador angular que me falta?

En primer lugar todos los nodejs y angularjs, aunque ambos son javascript, ambos son dos implementaciones diferentes.

NodeJS funciona en el servidor, por otra parte angularjs funciona en el navegador.

Al principio, cuando era novato en nodo, también tenía el mismo problema. Estaba pensando que podríamos llamar directamente a la función de nodo desde angularjs, ¡después de todo, todo está correcto a javascript! pero estaba equivocado..

Ahora aquí cómo debes hacer esto

Primero cree una ruta en nodejs (no es nada, solo cree un restAPI simple)

 app = express(); app.get('/dowork',function(res,req){ console.log(req.params.msg); /... code to do your work .../ }); 

ahora en angularjs call do work

 $http.get('http://localhost:8080/dowork',{"msg":"hi"}).success(function(data){ console.log(data); }); 

No estoy seguro de que sea req.params.msg pero puede registrar req y puede encontrar el objeto.

En caso de solicitud posterior sus parámetros estarán en req.body