在 node.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 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);
}
如果只是想检查是否提供了某些东西,那么你可以这样做:
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
所有查询字符串(如果它们都是数字),只需确保它们都保持相同的预期类型即可。当然除非这些都是文本字符串,在这种情况下忽略所有这些。
一言以蔽之,最好的方法是:
let limit = parseInt(req.query.limit || 0);
let page = parseInt(req.query.pagina || 1);
let offset = page * limit
因为你输入了默认值然后你解析了内容。
req.query.limit || 0
这一行检查是否发送了内容,如果没有发送默认值0
我正在使用 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 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);
}
如果只是想检查是否提供了某些东西,那么你可以这样做:
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
所有查询字符串(如果它们都是数字),只需确保它们都保持相同的预期类型即可。当然除非这些都是文本字符串,在这种情况下忽略所有这些。
一言以蔽之,最好的方法是:
let limit = parseInt(req.query.limit || 0);
let page = parseInt(req.query.pagina || 1);
let offset = page * limit
因为你输入了默认值然后你解析了内容。
req.query.limit || 0
这一行检查是否发送了内容,如果没有发送默认值0