req.params.number is string in expressjs?

express, node.js

Solution

Yes, all params will be strings.

This is extracted from the expressjs `route.js`:

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

So the `val` will always be a string, since the result of `decodeURIComponent` is always a string, while `m` is the result of a RegExp.exec() which returns an array of matched strings, so it's also safe to assume that `m[i]` will be a string.

Problem

I am writing expressjs app. is req.params.anything always string and not number suppose if I pass a number for user_id it's typeof is always string. ``` app.get('user/:user_id', function(req, res){ console.log(typeof req.params.user_id); }); ``` GET user/21 this logs string. So is it always type string for req.params.x?

Original source