0

我正在使用 Node.js 对来自 UI 的请求进行错误检查。UI 有 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' 

我在控制台中收到一条错误消息,提示“错误:未定义不是有效的 uri 或选项对象。” 我注意到在节点模块附带的 index.js 中,有以下代码:

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)
}

我应该把它完全拿出来吗?

4

1 回答 1

0

似乎问题出在客户端上。如果用户未选择尺寸或颜色,则它们在请求中未定义,而不是“N/A”。您也可以在第一个 if 语句中检查 undefined

if (req.query.size === 'N/A' || req.query.size === undefined ...
于 2016-04-03T06:56:57.753 回答