簡體   English   中英

在Node.Js中的express-validator之前修剪輸入值

[英]Trim input values before express-validator in Node.Js

我在Node.js項目中使用了建議的express-validator V4語法:

const { check, validationResult } = require('express-validator/check');
const { matchedData } = require('express-validator/filter');

app.post('/users/add/',[
check('first_name')
.isLength({ min: 1 }).withMessage('A first name is required')],
(req, res, next) => {
  var errors = validationResult(req);
  if (errors) {
     ..etc

請注意,我使用的是現代語法,沒有以下代碼(根據express-validator README.md文件):

const expressValidator = require('express-validator');
app.use(expressValidator());

在運行驗證之前,如何在輸入字段中修剪空格?

您應該使用.trim()你之前.check()這樣的,

check('first_name').trim().isLength({ min: 1 }).withMessage('A first name is required')]

希望這可以幫助!

盡管我認為最好的解決方案是以流暢的方式支持衛生,但以下解決方法可能會有所幫助。 我的工作的缺點是,現在在兩個地方處理輸入。

  1. 在require子句中添加所需的衛生功能:

     const { trim } = require('express-validator').validator 
  2. 調整請求處理:

     app.post('/users/add/', (req, res, next) => { req.body.first_name = trim(req.body.first_name); req.body.last_name = trim(req.body.last_name); req.body.email = trim(req.body.email); next(); }, [check('first_name') .isLength({ min: 1 }).withMessage('A first name is required')], (req, res, next) => { var errors = validationResult(req); if (errors) { ..etc 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM