Permettez-moi de préfixer ceci en disant que je suis plus récent pour Node/Express.Méthode courante d'appel d'une fonction de nœud à partir du contrôleur angulaire
J'ai une application AngularJS qui tire parti Node.JS pour la gestion Azure Blob exigences telles que la création de conteneurs Blob comme suit:
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 fonction de création d'un conteneur lorsqu'il est exécuté à partir server.js dans les travaux de noeud comme prévu et crée un conteneur blob. Cependant, j'ai besoin de créer un conteneur blob sur clic dans mon application AngularJS. J'ai envisagé d'utiliser des exports pour accéder et exécuter des fonctions créées dans Server.js mais j'ai vu des informations mélangées, surtout quand Express.js est dans l'image, pour appeler une fonction Node.js via le côté client AngularJS car il semble que dans une application Angular un appel http devrait être fait (s'il vous plaît voir la dernière réponse dans cet article: Call function in nodejs from angular application).
Mes questions sont les suivantes:
1) Depuis mon application utilise actuellement Node, Express et angulaire, aurais-je besoin d'utiliser le http dans mon contrôleur angulaire pour exécuter des fonctions de nœud/faire toutes les fonctions écrites dans le nœud /Server.js nécessite que $ http s'exécute s'il est appelé via le client AngularJS même s'il n'appelle pas un service mais peut être une fonction exécutant quelque chose comme les maths? Exemple d'un appel basé 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) ou utilise les exportations, comme énumérées dans ce poste de pratique plus courante, où la fonction est définie comme une exportation, puis importé par un nécessite: What is the purpose of Node.js module.exports and how do you use it?. Si oui, je ferais quelque chose comme ce qui suit ?:
de nœud Fichier:
var myFunc1 = function() { ... };
exports.myFunc1 = myFunc1;
Au sein d'un contrôleur AngularJS (non compris comme une dépendance):
var m = require('pathto/server.js');
m.myFunc1();
3) Enfin, suis-je complètement hors de base et il y a une pratique courante pour appeler des fonctions de node.js d'un contrôleur angulaire que je manque?
, le nœud est un serveur * * while se poursuit angulaire dans le navigateur. Vous ne pouvez pas inclure un script destiné au noeud dans votre navigateur, car le navigateur ne le sait pas et ne devrait pas le savoir. Vous devrez faire un [itinéraire] (http://expressjs.com/guide/routing.html), le servir, et l'appeler en angulaire. – Jorg