我的盒子上运行了一个nodejs express web服务器.我想发送一个get请求以及查询参数.有没有办法找到每个查询参数的类型,如int,bool,string.我不知道查询参数键值.我在服务器端解释为键值对的json对象.
你也可以试试
var someProperty = (+req.query.someProperty);
这对我有用!
你不能,因为HTTP没有类型的概念:一切都是字符串,包括查询字符串参数.
您需要做的是使用该req.query
对象并使用以下方法手动将字符串转换为整数parseInt()
:
req.query.someProperty = parseInt(req.query.someProperty);
正如Paul Mougel所提到的,http查询和路径变量是字符串.但是,这些可以在处理之前被拦截和修改.我是这样做的:
var convertMembershipTypeToInt = function (req, res, next) { req.params.membershipType = parseInt(req.params.membershipType); next(); };
之前:
router.get('/api/:membershipType(\\d+)/', api.membershipType);
后:
router.get('/api/:membershipType(\\d+)/', convertMembershipTypeToInt, api.membershipType);
在这种情况下,req.params.membershipType将从字符串转换为整数.请注意正则表达式,以确保只将整数传递给转换器.