这是一个表单提交的处理
//这里的构造函数不太懂
function NewsletterSignup(){
}
//这里也是 不知道他们使干什么用的 为什么要用
NewsletterSignup.prototype.save = function(cb){
cb();
};
var VALID_EMAIL_REGEX = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+$/;
//邮箱验证`
app.post('/newsletter', function(req, res){
var name = req.body.name || '', email = req.body.email || '';
// 输入验证
if(!email.match(VALID_EMAIL_REGEX)) {
if(req.xhr) return res.json({ error: '有错误' });
req.session.flash = {
一些返回错误的信息
};
return res.redirect(303, '/newsletter/archive');
}
// new NewsletterSignup({ name: name, email: email }) 为什么要传这个对象进去?
// .save(回调函数)这个回调函数就是上面构造函数里的cb吗?
new NewsletterSignup({ name: name, email: email }).save(function(err){
if(err) {
if(req.xhr) return res.json({ error: 'Database error.' });
req.session.flash = {
返回数据库错了的信息
}
return res.redirect(303, '/newsletter/archive');
}
if(req.xhr) return res.json({ success: true });
req.session.flash = {
返回提交的是正确的信息
};
return res.redirect(303, '/newsletter/archive');
});
});