Jquery Node.js检查mongoose验证并提醒用户

Jquery Node.js检查mongoose验证并提醒用户,jquery,node.js,mongodb,validation,mongoose,Jquery,Node.js,Mongodb,Validation,Mongoose,您好,我正在使用mongoose和mongoose uniqure验证器,这是一个简单的mongoose验证模块 我想知道解决这个问题的最佳方法:当用户尝试提交与另一个“生成器”同名的“生成器”时,在不必重新加载页面或至少不必重置表单数据的情况下向用户发出此警告的最佳方法是什么 验证端工作正常,但我愿意以任何其他方式进行验证和提醒 exports.new = function(req,res){ ///generator/new res.render("new",{title:"New Gene

您好,我正在使用mongoose和mongoose uniqure验证器,这是一个简单的mongoose验证模块

我想知道解决这个问题的最佳方法:当用户尝试提交与另一个“生成器”同名的“生成器”时,在不必重新加载页面或至少不必重置表单数据的情况下向用户发出此警告的最佳方法是什么

验证端工作正常,但我愿意以任何其他方式进行验证和提醒

exports.new = function(req,res){
///generator/new
res.render("new",{title:"New Generator"});
};

exports.create = function(req, res){

new Generator({
    name: req.body.name,
    words: req.body.words
}).save(function(err,docs){
    if(err){
        console.log(err);
        //This is where it returns validation errors.  
        //I am wondering the best way to alert the user of this.
    }else{
    res.redirect('/generators/'+docs.name);}
})
};

我以前使用过的一种方法是使用(这要求您使用会话)

使用它,您可以在用户会话中存储“flash消息”,然后通过模板引擎显示这些消息

在您的情况下,代码如下所示:

// somewhere in your app setup
var flash = require('connect-flash');
...
app.use(flash());
...

// your routes:
exports.new = function(req, res) {
  res.render("new", {
    title   : "New Generator"
    errors  : req.flash('error') // pass all 'error' messages to template
  });
};

exports.create = function(req, res) {
  new Generator({
    name  : req.body.name,
    words : req.body.words
  }).save(function(err,docs){
    if (err) {
      console.log(err);
      // store the error message as a flash message
      req.flash('error', err.message);
      // redirect back to /new
      res.redirect('/new');
    } else {
      res.redirect('/generators/' + docs.name);
    }
  })
};
因此,当保存触发错误时,将存储错误并将用户重定向回“新建”页面。在“新建”模板中,您会得到一个变量
errors
,其中包含一个数组(可以为空),您可以使用该数组向用户显示错误