将ejs表单数据发布到控制器的问题

时间:2017-06-06 06:29:11

标签: node.js express mean-stack ejs

  

我已经通过了“http://tanmaysarkar.com/html-form-with-ejs-template-in-nodejs/”这篇文章,但我已经在控制器中写了我的逻辑

     

我正在使用带有ejs模板引擎的平均堆栈,我想将ejs表单数据发布到控制器文件夹下的ctroller我不知道如何将其发布到控制器请帮助以下是ejs模板,login.ejs是在views文件夹下

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

    });
});
  

在以下控制器的帖子上应该被调用

     

在controllers / login.controller.js中,我写了以下post req

{{1}}

1 个答案:

答案 0 :(得分:0)

我只需要添加

loadInBackground()

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

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

并在我的ejs文件中

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

是必需的