req.params.number是expressjs中的字符串?

Yal*_*ber 5 node.js express

我正在写expressjs app.是req.params.anything总是字符串而不是数字假设如果我为user_id传递一个数字,它的typeof总是字符串.

app.get('user/:user_id', function(req, res){
  console.log(typeof req.params.user_id);
});
Run Code Online (Sandbox Code Playgroud)

获取用户/ 21

这个日志字符串.

那么它总是为req.params.x输入字符串吗?

ran*_*nel 7

是的,所有参数都是字符串。

这是从 expressjs 中提取的route.js

var val = 'string' == typeof m[i]
  ? decodeURIComponent(m[i])
  : m[i];
Run Code Online (Sandbox Code Playgroud)

所以 theval将始终是一个字符串,因为 的结果decodeURIComponent始终是一个字符串,而m是 RegExp.exec() 返回匹配字符串数组的结果,因此假设这m[i]将是一个字符串也是安全的。