req undefined при проверке ошибок в Node.js

Я использую Node.js для проверки ошибок по запросу из пользовательского интерфейса. Пользовательский интерфейс имеет 3 поля ввода - размер, цвет и стиль. Пользователь должен выбрать цвет и размер, но не должен выбирать стиль. Поэтому при проверке ошибок следует убедиться, что они выбирают цвет и размер.

if (req.query.size == 'undefined' || req.query.color == 'undefined') {
    console.log("Did not select size or color");
    res.json({
        Error: "Must pick size and color!"
    });
} else {
    console.log(req.query.color);
    console.log(req.query.size);
    var selection = 'api' + req.query.size + '/' + req.query.color;
};

Когда пользователь не выбирает цвет и размер, он не улавливает это и вместо этого переходит к "другому". В этом случае консоль печатает "неопределенный" для цвета и размера. Любые предложения о том, как это исправить?

Обратите внимание, что если я сделаю

req.query.size == undefined || req.query.color == undefined

или же

typeof req.query.size == 'undefined' || typeof req.query.color == 'undefined' 

В консоли появляется сообщение "Ошибка: undefined не является допустимым объектом URI или опциями". Я заметил, что в index.js, который поставляется с Node Modules, есть следующий код:

function request (uri, options, callback) {
   if (typeof uri === 'undefined') {
      throw new Error('undefined is not a valid uri or options object.')
   }
   ....
   return new request.Request(params)
}

Должен ли я просто взять это полностью?

1 ответ

Похоже, проблема в клиенте. Если пользователь не выбирает размер или цвет, он не определен в запросе, а не 'N/A'. Вы также можете проверить неопределенность в своем первом операторе if

if (req.query.size === 'N/A' || req.query.size === undefined ...
Другие вопросы по тегам