在节点.js中设置 HTTP GET 中的 URL 参数的默认值
Set default value for URL parameter in HTTP GET in node.js
我正在使用node.js restify。
我有一个看起来像这样的 HTTP GET 请求;
http://127.0.0.1//read_val?XXX=123&YYY=456&ZZZ=789
在我的处理函数中,要检索 URL 参数,相关代码将是这样的;
var api_get_func = function (app, url_path) {
function respond(req, res, next) {
var XXX= req.query.XXX;
var YYY = req.query.YYY;
var ZZZ = req.query.ZZZ;
//SQL query ...
return next();
}
app.get(url_path, respond);
}
现在,如果我有一个像下面这样的HTTP GET函数怎么办
http://127.0.0.1//read_val?XXX=123&YYY=456
URL 中未提供 ZZZ
参数。如何修改代码,以便ZZZ
使用默认值,例如111
?
如果只是想检查是否提供了某些内容,那么您可以执行以下操作:
var ZZZ = req.query.ZZZ || 111;
但。。。GET 参数是查询字符串,因此我们可能希望确保它是一个数字。
if (!parseInt(req.query.ZZZ)) {
req.query.ZZZ = 111;
}
或者如果你想用它获得三元:
req.query.ZZZ = parseInt(req.query.ZZZ) ? req.query.ZZZ : 111;
请注意,其他参数是一个字符串,并且此默认值设置为数字。因此,您可能想要'111'
而不是111
。此外,您可以parseInt
所有查询字符串,或者如果它们都是数字,则可以将它们全部toString
,只需尝试确保它们都保持相同的预期类型即可。当然,除非这些都是文本字符串,在这种情况下,请忽略所有这些。
var api_get_func = function (app, url_path) {
function respond(req, res, next) {
var XXX= req.query.XXX;
var YYY = req.query.YYY;
var ZZZ = req.query.ZZZ || <YOUR DEFAULT VALUE>;
//SQL query ...
return next();
}`enter code here`
app.get(url_path, respond);
}
在一行中,最好的方法是:
let limit = parseInt(req.query.limit || 0);
let page = parseInt(req.query.pagina || 1);
let offset = page * limit
因为您设置了默认值,所以您可以分析内容。
req.query.limit || 0
此行检查内容是否已发送,如果没有,则以 0 作为默认值
相关文章:
- JS:检查URL中的参数,然后迭代一个参数为var的函数
- 使用RegExp查找url中的字符
- javascript中url中的Regex参数
- 使用Javascript根据URL中的关键字隐藏下拉选项
- 如何在AngularJS URL中的hashtag(#)前面加上字符串
- 使用Regex查找URL中的特定字符串
- 将php页面URL中的变量传递给JavaScript和另一个php
- Url中的JavaScript变量不起作用
- 在我的图库(jQuery)中使用箭头导航时,更改URL中的哈希
- Angularjs - url params:单击时返回 url 中的角度变量
- 使用sammy.js和Knockout.js来显示url中的单个项
- 基于URL中的HASH打开引导模式
- URL中的参数始终为字符串
- 如何使用Selenium IDE检查URL中的字符串
- 根据 URL 中的哈希移动 HTML
- 使用 window.location.search 时,URL 中的字符会更改
- 将 url 中的一个字符串替换为另一个字符串
- 更改链接 URL 中的路径名,同时保持查询字符串不变
- JavaScript 背景 URL 中的括号
- Regex以匹配url中的单个单词