2017-06-06 78 views
0

我已经通过“http://tanmaysarkar.com/html-form-with-ejs-template-in-nodejs/”这个帖子了,但我已经写在控制我的逻辑问题在发布EJS表单数据控制器

我使用与EJS模板引擎平均栈,我要发布EJS形式数据ctroller这是控制器文件夹下我不如何将它张贴到控制器,请帮助下面的是EJS模板,login.ejs是根据意见对这个跟随着的后夹

<%- 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') %> 

摹控制器应得到所谓

在控制器/ login.controller.js我写了下面的帖子REQ

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') 

    }); 
}); 

回答

0

我不得不在“添加服务器

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

上述三行.js“这是我的应用程序的入口点,当我实际发布数据映射需要像

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

,并在我的EJS文件

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

被要求

相关问题