Partage
  • Partager sur Facebook
  • Partager sur Twitter

[expressjs]erreurs

no default engine and no extension

    18 juillet 2017 à 17:50:32

    Bonjour,

    je suis le cours en node js et je lis actuellement la doc des middlewares d'express. J'essaie le dernier code de la partie "Application-level middleware", juste avant la partie "Router-level middleware". Voici mon code

    var express = require("express");
    
    var app = express();
    
    app.get("/user/:id", function(request, response, next)
    {
    	if (request.params.id === "0")
    	{
    		next("route"); // if the user ID is 0, skip to the next route
    	}
    	else
    	{
    		next(); // Otherwise pass the control to the next middleware function in this stack
    	}
    }, function(request, response, next)
    {
    	// render a regular page
    	response.render("regular");
    });
    
    // handler for the /user/:id path, which renders a special page
    app.get("/user/:id", function(request, response, exit)
    {
    	response.render("special");
    });
    
    app.listen(8080);

    Lorsque je fais crtl+c et que je relance la commande "node application.js" et que je rafraîchis ensuite le navigateur, l'erreur suivante s'affiche dans la fenêtre du navigateur ET dans la console d'ubuntu.

    Error: No default engine was specified and no extension was provided.
       at new View (/opt/lampp/htdocs/test/expressjs/node_modules/express/lib/view.js:62:11)
       at EventEmitter.render (/opt/lampp/htdocs/test/expressjs/node_modules/express/lib/application.js:570:12)
       at ServerResponse.render (/opt/lampp/htdocs/test/expressjs/node_modules/express/lib/response.js:971:7)
       at /opt/lampp/htdocs/test/expressjs/application.js:65:11
       at Layer.handle [as handle_request] (/opt/lampp/htdocs/test/expressjs/node_modules/express/lib/router/layer.js:95:5)
       at next (/opt/lampp/htdocs/test/expressjs/node_modules/express/lib/router/route.js:137:13)
       at Route.dispatch (/opt/lampp/htdocs/test/expressjs/node_modules/express/lib/router/route.js:112:3)
       at Layer.handle [as handle_request] (/opt/lampp/htdocs/test/expressjs/node_modules/express/lib/router/layer.js:95:5)
       at /opt/lampp/htdocs/test/expressjs/node_modules/express/lib/router/index.js:281:22
       at param (/opt/lampp/htdocs/test/expressjs/node_modules/express/lib/router/index.js:354:14)


    Est-ce quelqu'un a une idée d'où vient l'erreur ?

    merci d'avance pour votre aide.

    -
    Edité par me_moi 18 juillet 2017 à 17:51:53

    • Partager sur Facebook
    • Partager sur Twitter
      18 juillet 2017 à 20:05:50

      Bonjour,

      Pour la méthode render, il faut que tu définisses un template engine. Tu auras plus d'explications ici : http://expressjs.com/en/guide/using-template-engines.html

      • Partager sur Facebook
      • Partager sur Twitter
        18 juillet 2017 à 20:27:49

        Merci pour la réponse. Je suppose qu'il vaut mieux lire d'abord la doc d'express et ensuite celle des middlewares plutôt que l'inverse...
        • Partager sur Facebook
        • Partager sur Twitter
          10 octobre 2018 à 12:08:53

          me_moi a écrit:

          Bonjour,

          je suis le cours en node js et je lis actuellement la doc des middlewares d'express. J'essaie le dernier code de la partie "Application-level middleware", juste avant la partie "Router-level middleware". Voici mon code

          var express = require("express");
          
          var app = express();
          
          app.get("/user/:id", function(request, response, next)
          {
          	if (request.params.id === "0")
          	{
          		next("route"); // if the user ID is 0, skip to the next route
          	}
          	else
          	{
          		next(); // Otherwise pass the control to the next middleware function in this stack
          	}
          }, function(request, response, next)
          {
          	// render a regular page
          	response.render("regular");
          });
          
          // handler for the /user/:id path, which renders a special page
          app.get("/user/:id", function(request, response, exit)
          {
          	response.render("special");
          });
          
          app.listen(8080);

          Lorsque je fais crtl+c et que je relance la commande "node application.js" et que je rafraîchis ensuite le navigateur, l'erreur suivante s'affiche dans la fenêtre du navigateur ET dans la console d'ubuntu.

          Error: No default engine was specified and no extension was provided.
             at new View (/opt/lampp/htdocs/test/expressjs/node_modules/express/lib/view.js:62:11)
             at EventEmitter.render (/opt/lampp/htdocs/test/expressjs/node_modules/express/lib/application.js:570:12)
             at ServerResponse.render (/opt/lampp/htdocs/test/expressjs/node_modules/express/lib/response.js:971:7)
             at /opt/lampp/htdocs/test/expressjs/application.js:65:11
             at Layer.handle [as handle_request] (/opt/lampp/htdocs/test/expressjs/node_modules/express/lib/router/layer.js:95:5)
             at next (/opt/lampp/htdocs/test/expressjs/node_modules/express/lib/router/route.js:137:13)
             at Route.dispatch (/opt/lampp/htdocs/test/expressjs/node_modules/express/lib/router/route.js:112:3)
             at Layer.handle [as handle_request] (/opt/lampp/htdocs/test/expressjs/node_modules/express/lib/router/layer.js:95:5)
             at /opt/lampp/htdocs/test/expressjs/node_modules/express/lib/router/index.js:281:22
             at param (/opt/lampp/htdocs/test/expressjs/node_modules/express/lib/router/index.js:354:14)


          Est-ce quelqu'un a une idée d'où vient l'erreur ?

          merci d'avance pour votre aide.

          -
          Edité par me_moi 18 juillet 2017 à 17:51:53

          bonjour je commence egalement la doc nodejs et je rencontre le meme probleme, as tu trouvé la solution ?
          merci a toi



          • Partager sur Facebook
          • Partager sur Twitter

          [expressjs]erreurs

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown