【发布时间】:2014-12-05 17:33:23
【问题描述】:
Node.js 有点新,所以我在互联网上几乎找不到东西。
我已经解决了这个问题。这是因为我使用$.ajax 从客户端调用。
但是当我在下面的代码中尝试它时,它永远不会呈现。
初始页面是 /contact,当我调用 /contact/sendEmail 时,/contact/sendEmail 中的所有功能都可以正常工作,但不能用于渲染。
根本没有错误。就像什么都没发生一样。
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")
【问题讨论】:
-
定义“从不渲染”。你有错误吗?你在前端看到什么(模板)?
-
谢谢@mscdex,没想到回复会这么快。我已经更新了这个问题。它没有显示任何错误。它只是显然不想渲染。问题仅在渲染上。除此之外,一切都在工作。
-
如果
user/register没有被渲染到前端,那么在发布到/contact/sendEmail之后,您在客户端看到了什么?空白页?还有什么?
标签: node.js post express pug render