Express.js不会在后期操作中呈现
Node.js是一个新的,所以我很难find在互联网上的东西。 我已经解决了这个问题。 这是因为我使用$.ajax
从客户端$.ajax
。 但是当我在下面的代码中尝试它时,它不会呈现。 最初的页面是/联系人,当我打电话给/ contact / sendEmail时,/ contact / sendEmail里面的所有function都在工作,但是没有与渲染。 根本没有错误。 这就像什么都没有发生。
var Contact = require('../controllers/contact'); module.exports = function(app) { app.get('/contact', function(req, res) { res.render('contact'); }); app.post('/contact/sendEmail', function(req, res, next) { var form = req.body; Contact.validators.form(form, function(err) { if (err) { return res.render('user/register'); //This one never works! /*return res.render('contact', { error: err, });*/ } else { Contact.sendEmail(req, res, next); } }); }); };
它被这个函数调用
$('.contact').submit(function(event, done) { var form = $(this); var data = form.serializeArray(); // server side validation // every contact form field is required event.preventDefault(); $.ajax({ type: 'POST', url: '/contact/sendEmail', data: form.serialize() }) .done(function(data) { if (data.status == 'OK') { $('#contact-success').modal('show'); } else { return done('Please fill all of the fields.', false); } }); });
为了大家学习。 我改变了它从服务器端通过添加到玉文件调用:
form(role="form" method="POST")
我自己成功解决了! 我发现这是因为我从客户端的$.ajax
调用路由。 当我通过把这个代码放到窗体中来更改调用方法并删除$.ajax
,就完成了。 谢谢@mscdex
form(role="form" method="POST")
我把路由/contact/sendEmail
改成了/contact
。