2017-06-06 3 views
0

i durch „http://tanmaysarkar.com/html-form-with-ejs-template-in-nodejs/“ diesen Beitrag gegangen sind an die Steuerung, aber ich habe meine Logik in der Steuerung geschriebenProbleme in ejs Formulardaten veröffentlichen

ich bin mit mittleren Stapel mit ejs Template-Engine, ich will ejs Form schreiben Daten, die Ordner unter Controller ctroller ich nicht, wie es schreiben das bitte helfen sie den Controller finden ejs Vorlage, login.ejs ist unter Ansichten Ordner

<%- include('partials/header') %> 
    <div class="form-container"> 
     <h2>Login</h2> 
     <% if(locals.error) { %> 
      <div class="alert alert-danger"><%= error %></div> 
     <% } %> 
     <% if(locals.success) { %> 
      <div class="alert alert-success"><%= success %></div> 
     <% } %> 
     <form method="post" action=""> 
      <div class="form-group"> 
       <label for="username">Username</label> 
       <input type="text" name="username" id="username" value="<%= locals.username || '' %>" class="form-control" /> 
      </div> 
      <div class="form-group"> 
       <label for="password">Password</label> 
       <input type="password" name="password" id="password" class="form-control" /> 
      </div> 
      <div class="form-group"> 
       <button type="submit" class="btn btn-primary">Login</button> 
       <a href="/register" class="btn btn-link">Register</a> 
      </div> 
     </form> 
    </div> 
    <%- include('partials/footer') %> 

auf Post dieses followin g Controller sollte

In Controller aufgerufen/login.controller.js ich habe folgende Beitrag erf geschrieben

router.post('/', function (req, res) { 
    // authenticate using api to maintain clean separation between layers 
    request.post({ 
     url: config.apiUrl + '/users/authenticate', 
     form: req.body, 
     json: true 
    }, function (error, response, body) { 
     if (error) { 
      return res.render('login', { error: 'An error occurred' }); 
     } 

     if (!body.token) { 
      //console.log("inside if loop " + body.token + "::" + req.body.username + "::" + body) 
      return res.render('login', { error: body, username: req.body.username }); 
     } 

     // save JWT token in the session to make it available to the angular app 
     req.session.token = body.token; 

     // redirect to returnUrl 

     var returnUrl = req.query.returnUrl && decodeURIComponent(req.query.returnUrl) || '/'; 
     console.log("return url" + returnUrl); 
     res.redirect(returnUrl); 
     //res.render('register') 

    }); 
}); 

Antwort

0

Ich hatte gerade

in „Server
var ejs = require('ejs'); 
var login = require(__dirname + '/views/login.ejs');//for ejs 
var logincontroller = require(__dirname + '/controllers/login.controller.js');//for ejs 

über drei Zeilen hinzufügen .js "ist der Einstiegspunkt meiner Anwendung, und wenn ich das Datenmapping posten möchte, wurde benötigt wie

app.use('/controllers/login.controller.js', logincontroller);//for ejs 

und in meinem ejs

<form method="post" action="/controllers/login.controller.js"> 

wurde Datei

erforderlich