Как я могу принять строки запроса нижнего, верхнего и смешанного регистра - PullRequest
1 голос
/ 28 мая 2019

Каков наилучший способ работы с вариантами дела для следующего сценария

я хочу иметь возможность проверить, является ли строка req.query rowCount, rowcount или ROWCOUNT существуют, а затем получают их значение. надеюсь, что есть простой способ проверить, существует ли строка запроса в любом случае.

если я использую

if (!req.query.rowcount) {var t_rowcount = parseInt(25)}

это не будет совпадать, если строка запроса равна rowCount

Кстати, я запускаю NodeJ на сервере Windows 2016

Ответы [ 2 ]

1 голос
/ 28 мая 2019

это невозможно, как есть, но вы могли бы вставить очень простое промежуточное ПО, которое, например, строчные буквы всех ключей в req.query:

// insert this before your routes
app.use(function(req, res, next) {
  for (var key in req.query)
  { 
    req.query[key.toLowerCase()] = req.query[key];
  }
  next();
});
0 голосов
/ 29 мая 2019

С помощью ответа rakesh я смог найти решение, которое делает то, что мне нужно.

app.use(function(req, res, next) {
  for (const key in req.query) {

    if( (key.toLowerCase() === key ) == false){
    req.query[key.toLowerCase()] = req.query[key]
    delete req.query[key]
    }
  }

это промежуточное ПО фактически получает все ключи в объекте req.query, проверяет, является ли ключвсе строчные, если это не мы не трогаем это.Если нет, мы создаем новый ключ с ключом в нижнем регистре и затем удаляем исходный ключ не в нижнем регистре, чтобы размер объекта оставался неизменным.

Также, если кому-то это нужно в верхнем или верблюжьем регистре, это можно сделать, просто изменив tolowerCase out

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...