繁体   English   中英

express.js中的表单验证

[英]Form validation in express.js

我要验证包含用户详细信息的表单。 除了用于非空检查的基本验证之外,我还想检查用户名/电子邮件是否在数据库中退出。 对于电子邮件字段,我要检查非空,格式以及最后在数据库中的可用性。 电子邮件的错误消息也应该是备用的,并且用户名也应如此。

到目前为止,我在这里尝试过-

app.post('/user-add', checkAuth, function(req,res){

    req.checkBody('username', 'Username is required').notEmpty(); 
    req.checkBody('first_name', 'First Name is required').notEmpty(); 
    req.checkBody('last_name', 'Last Name is required').notEmpty();
    req.checkBody('email', 'Email is required').notEmpty();
    req.checkBody('email', 'Valid Email is required').isEmail();
});

那么如何实现这一目标。 任何帮助,将不胜感激!

谢谢

我认为您应该使用验证器。 这是一个节点包。 出色且非常易于使用。请尝试一次。 您可以在这里找到验证器

服务器端使用

使用npm install validator安装库

    var validator = require('validator');

    validator.isEmail('foo@bar.com'); //=> true 

ES6

    import validator from 'validator';

或者,仅导入库的一个子集:

    import isEmail from 'validator/lib/isEmail';

客户端用法该库可以作为独立脚本或通过与AMD兼容的加载器加载

    <script type="text/javascript" src="validator.min.js"></script>
    <script type="text/javascript">
      validator.isEmail('foo@bar.com'); //=> true
//can use this syntax for checking availability of fields in body  
if( req.body.email == undefined ||  req.body.email == '' ||  req.body.email == null)
            {
                // do something such as throw error
            }
// check for valid or invalid attribute
            if(!validator.isEmail(req.body.email)){
               // do something such as throw error
            }
  </script> 

暂无
暂无

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

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