J'ai une application / module de nœud.js qui est Mon module agit comme un proxy avec des capacités supplémentaires telles que Ajout de nouveaux fonctionnalité forte> à la fonctionnalité hors de la case (méthodes).
Pour ce faire, vous devez procéder comme suit: P> clone mon application p>
Créer un nouveau dossier appelé Event (à l'intérieur de mon application) P>
blockQuote> Dans ce dossier, vous devez fournir deux fichiers p> Remarque: le nom du fichier JS & JSON doit être identique P> par exemple permet de supposer qu'il s'agit de votre Dans ce cas lorsque l'utilisateur placé dans le navigateur, le lien suivant P> localhost: 3000 / Run P>
blockQuote> im invoquant la fonction maintenant strong> je veux supporter l'utilisation cas d'ajout alors lorsque mon module fonctionnera, il existe de nouvelles extenseurs externes existent avec toutes la configuration et, si oui. (aux fichiers JS & JSON). P> Mes questions sont: strong> p> 2.Si il y a une autre solution dans le nœud s'il vous plaît laissez-moi savoir. p> p>
extend.json code> fichier p>
extender [fnname] (req, res) code>); p>
3 Réponses :
Je crois qu'un routeur simple devrait satisfaire vos exigences:
Merci mais aussi loin que je comprenne, cela ne vous aidera pas depuis mon proxy inverse est un module contenant des itinéraires ... En outre, je dois invoquer une méthode à l'Usermodule Comment devrais-je faire cela? Pouvez-vous fournir un code de travail complexe comme exemple que je peux utiliser pour tester? Merci encore :)
J'essaie quelque chose comme vous l'avez dit mais ça ne fonctionne pas :(, mais peut-être que quelque chose me manque, merci quand même.
Vous pouvez implémenter la fonction d'initialisation de votre API pour donner une liberté aux utilisateurs de modules. Par exemple.
var yourModule = require('yourModule').init({ extenders: [ { "path": "run", "fn": "runFn" } ] }); app = require('express')(); app.use(yourModule.getMiddleware());
Si je ne me trompe pas de comprendre votre problème peut-être que cette approche peut vous aider.
Je pense que vous pouvez énumérer vos extenseurs dans une ACL comme JSON, qui incluent non seulement le chemin ou le nom FNName, mais le chemin FLASE_TO_JS ou tout autre propriété dont vous avez besoin, comme s'il s'agit de paramètres actifs ou de sécurité. P>
var Router = { extenders: {}, init: function () { this.extenders = {}; this.loadExtenderFiles(); }, loadExtenderFiles: function () { var key, extender; // Iterate extender files for (key in ACL_JSON) { // extender load logic extender = ACL_JSON[key]; if (extender.active) { this.extenders[extender.fn] = require(extender.file); } } }, // this fn should allow you to Router.extend() anywhere during the request process extend: function (fn, request, response) { // Parse request/response to match your extender module pattern // extender process logic this.extenders[fn](request, response); } }; module.exports = Router;
Ce n'est pas clair ce que vous demandez. Votre application est-elle une application express? Est-ce que cela permet à l'utilisateur de définir des itinéraires dans des fichiers séparés? Comment demandez-vous que vous demandez est différent de ce qui est déjà implémenté, à l'exception de la possibilité d'ajouter des dossiers supplémentaires?
Pourriez-vous montrer le code?