gpt4 book ai didi

node.js - express.js 路由无法识别条件响应的空值

转载 作者:太空宇宙 更新时间:2023-11-03 22:58:18 24 4
gpt4 key购买 nike

当参数中的日期值最终无效时,我尝试为我的express.js 路由呈现替代响应。当我看到无效日期时,该值最终为空,因此在中间件的 if 语句中,我测试一个真实值,如果不真实,我会提供替代响应。

即使日期的值为空,我得到的是真实值。这是一个例子:

api/timestamp/hello 是我的路线。

有效日期应如下所示:{"unix":1546214400000,"utc":"Mon, 31 Dec 2018 00:00:00 GMT"}

像“hello”这样的无效日期应该像这样 {'error': 'Invalid Date'}

如果日期有效,代码将返回正确的值,但如果日期无效,我会得到 {"unix":null,"utc":"Invalid Date"} 而不是 {'error': '无效日期'}

下面是代码。

   app.get('/api/timestamp/:date', (req,res) => {
let date = new Date(req.params.date);

if (date === null) {
res.send({'error': 'Invalid Date'});
} else {
let unix = date.getTime();
let utc = date.toUTCString();
res.send({unix, utc});
}
});

就这一点而言,我对 Express 和 Node.js 还比较陌生。关于为什么空值不被识别的任何想法?

最佳答案

问:在尝试将日期转换为 Unix 和 UTC 之前检查有效日期是否有意义?

app.get('/api/timestamp/:date', (req,res) => {

let date = new Date(req.params.date);
if (req.params.date && date instanceOf Date) {
let unix = date.getTime();
let utc = date.toUTCString();
res.send({unix, utc});
} else {
res.send({'error': 'Invalid Date'});
}
}

关于node.js - express.js 路由无法识别条件响应的空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53997825/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com