我正在编写expressjs应用程序。是req.params.anything始终是字符串,而不是数字。如果我为user_id传递数字,则它的typeof始终是字符串。
app.get('user/:user_id', function(req, res){ console.log(typeof req.params.user_id); });
GET用户/ 21
此日志字符串。
那么,是否总是为req.params.x输入字符串?
是的,所有参数都是字符串。
这是从expressjs中提取的route.js:
route.js
var val = 'string' == typeof m[i] ? decodeURIComponent(m[i]) : m[i];
因此,val它将始终是一个字符串,因为的结果decodeURIComponent始终是一个字符串,而mRegExp.exec()的结果将返回匹配的字符串数组,因此也可以安全地假定m[i]它将是一个字符串。
val
decodeURIComponent
m
m[i]