在Node.js

时间:2016-04-03 06:49:09

标签: html node.js servlets request error-checking

我正在使用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' 

我在控制台中收到错误"错误: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)
}

我应该完全解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

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

if (req.query.size === 'N/A' || req.query.size === undefined ...