6

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

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

获取用户/21

此日志字符串。

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

4

1 回答 1

7

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

这是从 expressjs 中提取的route.js

var val = 'string' == typeof m[i]
  ? decodeURIComponent(m[i])
  : m[i];

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

于 2013-08-05T12:30:59.363 回答