Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    Bruno Lesieur
    @Haeresis_gitlab
    Effectivement @obctrx, à la ligne 171 du fichier routes.js de NodeAtlas nous avons : NA.express.use(url.format(path.join(NA.webconfig.urlRelativeSubPath, virtual)), express.static(path.join(NA.serverPath, real), options));
    C'est à dire que la partie passé à express.static est path.join(NA.serverPath, real) soit NA.serverPath qui correspond au chemin jusqu'à votre projet NodeAtlas et real qui correspond à la valeur path passé va le ficher statics.js.
    Tout chemin statique est par conséquent chargé « en fonction » du projet NodeAtlas et pas selon la racine de l'OS.
    Bruno Lesieur
    @Haeresis_gitlab

    Ce mécanisme a été conçu pour permettre facilement de servir des fichiers en dehors du dossiers d'assets (notamment les JS du dossier node_module).

    Pour servir des fichiers qui n'ont aucun rapport avec le projet, comme tu l'as souligné, le plus simple est de faire appel à NA.express.use(url.format(path.join(NA.webconfig.urlRelativeSubPath, 'Le chemin du fichier sous http(s)')), NA.express.static('Le chemin absolue du dossier sur votre OS', options));

    Tu pourrais ainsi mettre ces chemins par exemple mettre la racine de ce chemin webconfig.json pour pouvoir « transporter ton projet »
    par exemple
    NA.express.use( url.format(path.join(NA.webconfig.urlRelativeSubPath, 'Le chemin du fichier sous http(s)')), NA.express.static(path.join(NA.webconfig._myOSPath, 'Le chemin du fichier sous le dossier', options) );
    Pour npm/pkg je veux bien ton retour @obctrx, et si tu as besoin d'aide n'hésite pas !
    obctrx
    @obctrx
    Je te remercie de ta réponse.
    J'ai essayé https://www.npmjs.com/package/pkg ; pour le moment, comment dire ... C'est la cata d'ou ma question sur les chemins absolus pour isoler des solutions.
    obctrx
    @obctrx
    Il se casse les dents dans les chemins du module node-atlas (mais pas que) et j'avoue que la somme de travail annoncé par le fichier de debug m'indispose.
    obctrx
    @obctrx
    Je n'avais jamais pensé à passer en static les modules sous node_module, je te remercie pour cette piste.
    J'ai bricolé le webconfig.json afin de retrouver mes petits.
    Au démarrage je fais un path.join(process.cwd(), NA.webconfig.mystatics.['mon_repertoire']) selon tes conseils.
    Bruno Lesieur
    @Haeresis_gitlab
    Ok. Si jamais tu estimes que c'est intéressant, n'hésite pas à la fin de ton travail de me faire parvenir la procédure pour l'ajouter à la doc ou à un tuto.
    obctrx
    @obctrx
    Bonjour Bruno,
    Je ne donne pas suite sur l'exploitation de https://www.npmjs.com/package/pkg, il ne "package" que des modules très commun et je n'ai pas le temps de tout reprendre.
    obctrx
    @obctrx
    J'ai cependant un autre soucis aléatoire et peut être auras-tu une idée.
    sur un point d'encrage changeVariations d'un controller spécifique, au retour d'une requète sur un base sqlite, je généré du code html volumineux que j'affecte à une variable locals.specific.contenu.
    Je n'ai pas systématiquement l'affichage de mon specific.contenu coté client alors que la valeur de locals.specific.contenu est elle bien affectée systématiquement.
    J'ai remarqué après essais sur plusieurs serveur physique que moins le serveur est véloce, plus l'anomalie est présente.
    Peut être as-tu une idée sur l'origine de ce problème. Je te remercie par avance.
    Bruno Lesieur
    @Haeresis_gitlab
    Ça ressemble a un problème de mémoire ça ?

    Je pense que le plus simple si côté serveur ça s'affecte tout le temps, c'est de vérifier si en utilisant substring (pour raccourcir la taille de specific.contenu côté serveur dans le point d'ancrage) ça ne s'affiche pas tout le temps après côté client. https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/String/substring

    Est-ce que ça s'affiche dans le code source HTML ou pas du tout d'ailleurs ?

    obctrx
    @obctrx
    en affichant seulement 2 caractères à l'aide du substring dans specific.contenu cote serveur, le problème persiste, j'ai l'affichage de mes 2 caractères 1 fois sur 5.
    J'avoue ne pas comprendre même si je te rejoindrais bien pour un problème de mémoire.
    obctrx
    @obctrx
    après un certain nombre d'essais sans succès, j'obtiens le message suivant dans la console : "(node:23295) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 connect listeners added. Use emitter.setMaxListeners() to increase limit"
    Je pense avoir isolé le problème, j'initialise des routes statiques dans exports.setSessions.
    en replaçant ces mêmes routes statiques dans exports.setRoutes je retrouve bien mon specific.contenu systèmatiquement.
    Je te remercie pour la piste.
    Bruno Lesieur
    @Haeresis_gitlab
    Bien joué !! @obctrx !!
    obctrx
    @obctrx
    C'est quand même très bien fait node-atlas !
    Bruno Lesieur
    @Haeresis_gitlab
    :D
    Maxime LUCE
    @Le-Max-De-Culture
    bonsoir !
    je n'arrive pas à récupérer mes champs d'un formulaire avec node atlas
    Quelqu'un aurait-il un tuto/lien à m'envoyer dans le but de m'aider.
    Merci par avance
    bonne soirée ;)
    Maxime LUCE
    @Le-Max-De-Culture
    @Haeresis_gitlab
    P.S. : je débute en node.js et avec node atlas
    Bruno J. S. Lesieur
    @Haeresis
    Bonjour @Le-Max-De-Culture, est-ce que tu essais de récupérer tes champs en POST ? C'est a dire que tu utilises la fonction de « submit » du navigateur (tu ne passes pas par un échange XMLHttpRequest (xhr / Ajax) ?
    Si c'est le cas, tu trouverras comment récupérer ta valeur de POST ici : https://node-atlas.js.org/partie-avancee.html#routage-dynamique
    Par exemple, si tu es sur la page : http://localhost/liste-des-membres/etc?example=test, et que tu remplis un formulaire dont un champ input à pour name la valeur test et que l'utilisateur y a écrit This is a test
    Tu seras capable de récupérer cette valeur comme suit dans le point d'ancrage changeVariations :
    exports.changeVariations = function (next, locals, request, response) {
    
        console.log("query request", request.query.example);
        // `'test'`
        console.log("query locals", locals.query.example);
        // `'test'`
    
        console.log("body request", request.body.test);
        // $ `'This is a test'`.
        console.log("body locals", locals.body.test);
        // $ `'This is a test'`.
    
        next();
    };
    Bruno J. S. Lesieur
    @Haeresis
    Sinon pour un exemple fonctionnel @Le-Max-De-Culture, tu trouverras ça ici : https://github.com/Haeresis/TestAtlas/tree/develop/regular-expression-url
    Bruno J. S. Lesieur
    @Haeresis
    image.png
    Maxime LUCE
    @Le-Max-De-Culture
    @Haeresis merci beaucoup je vais aller voir ça merci !
    Maxime LUCE
    @Le-Max-De-Culture
    @Haeresis j'ai ça :(
    ReferenceError: exports is not defined
    avec
    <a href="/list-of-members/">List of Members</a> <form action="list-of-members/toto-890/show?example=test" method="post"> <input type="text" name="test" value="This is a test" readonly="true"><br> <strong>test=This+is+a+test</strong><br> <button>Go</button> </form>

    `exports.changeVariations = function (next, locals, request, response) {

    console.log("param request:", request.params.member);
    // \> undefined, 'toto', 'bob-eponge99', 'node-atlas' or 'etc'.
    console.log("param variation:", locals.params.member);
    // \> undefined, 'toto', 'bob-eponge99', 'node-atlas' or 'etc'.
    
    console.log("param request", request.params.action);
    // \> undefined, 'show' or 'lolol'.
    console.log("param variation", locals.params.action);
    // \> undefined, 'show' or 'lolol'.
    
    console.log("query request", request.query.example);
    // \> undefined or 'test'
    console.log("query variation", locals.query.example);
    // \> undefined or 'test'
    
    console.log("body request", request.body.test);
    // \> undefined or 'This is a test'.
    console.log("body variation", locals.body.test);
    // \> undefined or 'This is a test'.
    
    next();

    };
    `

    mais le webconfig.simple je l'ai mis directement dans webconfig.json
    ah c'est bon
    Maxime LUCE
    @Le-Max-De-Culture
    il fallait rajouté un /
    désolé du ping :(
    Affandi Ezar
    @EzarAffandi_twitter
    Salut
    Bruno J. S. Lesieur
    @Haeresis
    Bonjour @EzarAffandi_twitter