我正在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),传递给下一条指令,而不会捕获错误。
元素在控制台日志和比较中是否具有不同的行为?
谢谢!
答案 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