将查询输入用于if语句条件

时间:2019-07-05 13:50:35

标签: javascript node.js express

我正在Express上运行一个小型API。

在请求时,我想验证所有查询参数是否已填充。

因此,我的直觉使我想到了这一点:

app.get("/book", (req, res) => {

    console.log(req.query.seats, req.query.category, req.query.date);

    let isEmpty =
        req.query.seats === undefined ||
        req.query.category === undefined ||
        req.query.date === undefined;

    console.log(isEmpty);

    if (isEmpty === true) {
        console.log("here3");
        res.status(400).send("Missing input");
    }

    // else continue with instructions
}

尽管如此,控制台仍会为isEmpty输出false,同时告知未定义元素(req.query.category),传递给下一条指令,而不会捕获错误。

元素在控制台日志和比较中是否具有不同的行为?

谢谢!

1 个答案:

答案 0 :(得分:1)

如果您要检查未定义且为空的字符串而不会出现问题,可以这样做:

let isEmpty = !req.query.seats || !req.query.category || !req.query.date

例如:

var seats = '';
var category = undefined;
var date = '';


let isEmpty = !seats || !category || !date
console.log(isEmpty) // true