如何修改请求判断逻辑以匹配无引号数字类型的req.body.key
解决方案
有几种可行的修改方式,按需选择即可:
方式一:使用宽松相等运算符
把严格相等===换成宽松相等==,它会自动处理类型转换,同时匹配字符串'1234'和数字1234:
if ( (req.path === '/start' || req.path === '/start/') && (req.method === 'PUT') && (req.body.key == '1234') )
方式二:显式匹配两种类型
如果想更严谨,避免类型转换带来的意外匹配,可以直接同时判断字符串和数字两种情况:
if ( (req.path === '/start' || req.path === '/start/') && (req.method === 'PUT') && (req.body.key === '1234' || req.body.key === 1234) )
方式三:统一转换为字符串后比较
将请求传入的key统一转为字符串,再和'1234'做严格相等比较,适合需要兼容更多输入类型的场景:
if ( (req.path === '/start' || req.path === '/start/') && (req.method === 'PUT') && (String(req.body.key) === '1234') )
内容的提问来源于stack exchange,提问作者Corey F
相关产品推荐
相关产品推荐

