微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如果字段多于一个,如何在nodejs中使用sanitize-html清理表单数据?

如何解决如果字段多于一个,如何在nodejs中使用sanitize-html清理表单数据?

我尝试对具有名称,电子邮件,电话和查询字段的html进行清理,对于一次输入,我在记录日志时会在控制台中获取数据,但会获得多个字段

TypeError:无法将对象转换为原始值

我的代码如下

router.post('/',async(req,res)=>{
try {
    var clean = sanitizeHtml( req.body,{ allowedTags: [],allowedAttributes: {} });
    // console.log(clean);
    const inquiry = new Inquiry(clean);
    await inquiry.save();
    res.redirect('/');
} catch(err){
    throw(err)
} 

})

我还添加了html /哈巴狗标记

form.py-3.mx-auto(action="/" method="POST")
    .form-row#form-id
      .col-md-2
        input.form-control(type="text" placeholder="Name" name="name")
      br
      .col-md-3
        input.form-control(type="text" placeholder="Email" name="email")
      br
      .col-md-2
        input.form-control(type="text" placeholder="phone" name="phone")
      br
      .col-md-3
        input.form-control(type="text" placeholder="Brief inquiry" name="inquiry")
      br
      .col-md
        input.btn.btn-primary(type="submit" value="Submit")

我终于设法通过分别处理每个输入来解决它,并且它可以工作,但是,如果有人得到简化的方法,我将很乐意接受它

router.post('/',res)=>{
try {
    var cleanName = sanitizeHtml( req.body.name,allowedAttributes: {} });
    var cleanEmail = sanitizeHtml( req.body.email,allowedAttributes: {} });
    var cleanPhone = sanitizeHtml( req.body.phone,allowedAttributes: {} });
    var cleanInquiry = sanitizeHtml( req.body.inquiry,allowedAttributes: {} });
    
    const inquiry = new Inquiry();
    inquiry.name = cleanName;
    inquiry.email = cleanEmail;
    inquiry.phone = cleanPhone;
    inquiry.inquiry = cleanInquiry;
    
    await inquiry.save();
    res.redirect('/');
} catch(err){
    throw(err)
} 

})

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。