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