如果字段多于一个,如何在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 (将#修改为@)