繁体   English   中英

如何在Sails.js中将Json验证消息转换为字符串Message?

[英]How to convert Json Validation Message Into string Message in Sails.js?

我正在尝试在sails.js中实现自定义验证。 我设法得到错误消息,但是它是Json格式。 我想将其转换为

我的模特

    module.exports = {
    attributes: {
        username: {
            type: 'string',
            required: true
        },
        email: {
            type: 'string',
            required: true,
            unique: true
        }
    },

    //model validation messages definitions
     validation_messages: { //hand for i18n & l10n

        email: {
            required: 'Email is required',

            unique: 'Email address is already taken'
        },
        username: {
            required: 'Username is required'
        }
    }
};

我的控制器:

        create:function(req,res){
        console.log('create');
        console.log(req.param('username'));
        console.log(req.param('email'));

        var Username=req.param('username');
        var Email=req.param('email');

        //console.log(Username);
        //console.log(Username);
        var params=req.params.all();
        console.log(params);
         Employee.create(params).exec(function(err,model){
             if(err){
               if (err.ValidationError) {
                  errors = HandleValidation.transformValidation(Employee, err.ValidationError);
                  console.log(errors);
                 res.json({
                      success:false,
                      errors: errors
                  })
              };
             }

            if(model)
            {
                res.json(model);
             }

         });

       }

JS:

   $("form").submit(function(){
        var username=$('#username').val();
        var email=$('#email').val();
         var id=$(this).attr('rel');

    $.post('/create', {
      username:username,
      email:email
    }).success(function (data) {


       //var jsonObj = JSON.parse(data);

       alert(JSON.stringify(data));

    }).fail(function (data) {

      alert((JSON.stringify(data)));
    });


    });

错误消息,如果我提交空白表格,则显示如下:

            { username: '', email: '' }
            { email: [ { required: 'Email is required' } ],
            username: [ { required: 'Username is required' } ] }

我想要这样的输出:

                 Email is required
                 Username is required

请帮忙。 任何帮助,将不胜感激

data是一个对象。 遍历它以获得您想要的。

基于您的字符串化JSON对象的外观:

var errors = data.errors
var errorsString = ""
for(var field in errors) {
    if(errors.hasOwnProperty(field)) {
        for (var i = 0; i < errors[field].length; i++) {
            error = errors[field][i]
            for (var errorType in error) {
                errorsString += error[errorType] + "\n"
            }
        }
    }
}
alert(errorsString)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM