簡體   English   中英

在 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 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 作為默認值

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM