Невозможно прочитать массив из req.body в nodejs express - PullRequest
1 голос
/ 09 марта 2020

Я пытаюсь прочитать массив из запроса типа application / json, используя почтальон. В nodejs я читаю значения req.body. Все остальные значения идут нормально, кроме массива. Массив я получаю только первое значение.

Вот мои данные

{   "title": "test",
    "date": "March 12 12 pm",
    "prize": "100",
    "status": "Ongoing",
    "users": ["1","2"]  
}

В nodejs я читаю так

const { title, data, prize, status, users } = req.body

вывод для пользователей, которых я Я получаю только 1, но не полный массив. Может кто-нибудь, пожалуйста, помогите мне, что пошло не так. Это мое приложение. js

 app.use(express.json());
app.use(express.urlencoded({ extended: true }));
app.use(
  bodyParser.urlencoded({
    extended: true,
  }),
);
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

//To allow cross-origin requests
app.use(cors());

Также я использую express -validator для тела

        const { body, validationResult } = require('express-validator');
    const { sanitizeBody } = require('express-validator');
    exports.tournamentUpdate = [
      auth,
      body('title', 'Title must not be empty.')
        .isLength({ min: 1 })
        .trim(),
      body('date', 'Date must not be empty.')
        .isLength({ min: 1 })
        .trim(),

      sanitizeBody('*').escape(),
      (req, res) => {
        try {
          const errors = validationResult(req);
          const {
            title,
            prize,
            status,
            users
          } = req.body;



output  req.body.title =  test;
            req.body.prize = 100;
            req.body.users = 1; 

Здесь пользователи получают значение как 1, я хочу целый массив [ 1,2]

1 Ответ

2 голосов
/ 09 марта 2020

Санитарные массивы имеют открытый баг для express -валидатора, с которым вы столкнулись.

К тому времени, как оно будет исправлено, вы можете исключить поле массива из санации.

  sanitizeBody("title", "date", "price", "status").escape(),
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...