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 ...