在节点.js中设置 HTTP GET 中的 URL 参数的默认值

Set default value for URL parameter in HTTP GET in node.js

本文关键字:URL 中的 参数 默认值 GET HTTP 节点 js 设置      更新时间:2023-09-26

我正在使用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 作为默认值