- Node.js 教程
- Node.js - 首頁
- Node.js - 簡介
- Node.js - 環境搭建
- Node.js - 第一個應用程式
- Node.js - REPL 終端
- Node.js - 命令列選項
- Node.js - 包管理器 (NPM)
- Node.js - 回撥函式概念
- Node.js - 上傳檔案
- Node.js - 傳送郵件
- Node.js - 事件
- Node.js - 事件迴圈
- Node.js - 事件發射器
- Node.js - 偵錯程式
- Node.js - 全域性物件
- Node.js - 控制檯
- Node.js - 程序
- Node.js - 應用程式擴充套件
- Node.js - 打包
- Node.js - Express 框架
- Node.js - RESTful API
- Node.js - 緩衝區
- Node.js - 流
- Node.js - 檔案系統
- Node.js MySQL
- Node.js - MySQL 入門
- Node.js - MySQL 建立資料庫
- Node.js - MySQL 建立表
- Node.js - MySQL 插入資料
- Node.js - MySQL 查詢資料
- Node.js - MySQL 條件查詢
- Node.js - MySQL 排序
- Node.js - MySQL 刪除資料
- Node.js - MySQL 更新資料
- Node.js - MySQL 連線查詢
- Node.js MongoDB
- Node.js - MongoDB 入門
- Node.js - MongoDB 建立資料庫
- Node.js - MongoDB 建立集合
- Node.js - MongoDB 插入資料
- Node.js - MongoDB 查詢資料
- Node.js - MongoDB 查詢
- Node.js - MongoDB 排序
- Node.js - MongoDB 刪除資料
- Node.js - MongoDB 更新資料
- Node.js - MongoDB 資料限制
- Node.js - MongoDB 連線查詢
- Node.js 模組
- Node.js - 模組
- Node.js - 內建模組
- Node.js - 實用工具模組
- Node.js - Web 模組
- Node.js 有用資源
- Node.js - 快速指南
- Node.js - 有用資源
- Node.js - 討論
Node.js - querystring.parse() 方法
使用 Node.js 的 querystring.parse() 方法,可以將 URL 查詢字串解析為一個物件,該物件包含給定 URL 查詢字串中的鍵值對。此方法返回的物件不繼承 JavaScript 的原型。這意味著 JavaScript 的物件方法和其他方法未定義,將無法工作。
預設情況下,查詢字串的百分號編碼字元將被假定為使用 UTF-8 編碼。必須指定 decodeURIComponent 選項才能解碼其他字元編碼。
語法
以下是 Node.js querystring.parse() 方法的語法:
querystring.parse(str[, sep[, eq[, options]]])
引數
此方法接受四個引數。這些引數如下所述。
str − 此引數指定要解析的 URL 查詢字串。
sep − 此引數描述一個子字串,用於在查詢字串中定義鍵值對。預設值為 '&'。
eq − 此引數描述一個子字串,用於在查詢字串中定義鍵和值。預設值為 '='。
options − 這是一個物件,它允許修改方法的行為。下面描述了此物件的以下屬性:
decodeURIComponent − 這是一個用於解碼查詢字串中百分號編碼字元的函式。預設情況下,它是 querystring.unescape()。
maxKeys − 此屬性指定要解析的最大鍵數。如果指定為 0,則鍵計數將無限大。預設值為 1000。
返回值
此方法將返回一個已解析的 URL 查詢字串,將其轉換為鍵值對集合。
示例
如果我們將 URL 字串 (str) 傳遞給 querystring.parse() 方法,它將返回一個物件,該物件包含從提供的 URL 字串解析的鍵值對。
在下面的示例中,我們將 URL 字串傳遞給 Node.js querystring.parse() 方法。
const querystring = require('node:querystring');
let urlQuery = "name=varma1&role=writer&tech=nodejs&permission=true";
console.log(querystring.parse(urlQuery));
輸出
internal/modules/cjs/loader.js:596 throw err; ^ Error: Cannot find module 'node:querystring' at Function.Module._resolveFilename (internal/modules/cjs/loader.js:594:15) at Function.Module._load (internal/modules/cjs/loader.js:520:25) at Module.require (internal/modules/cjs/loader.js:650:17) at require (internal/modules/cjs/helpers.js:20:18) at Object.<anonymous> (/home/cg/root/63a03fcfc3513/main.js:1:83) at Module._compile (internal/modules/cjs/loader.js:702:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10) at Module.load (internal/modules/cjs/loader.js:612:32) at tryModuleLoad (internal/modules/cjs/loader.js:551:12) at Function.Module._load (internal/modules/cjs/loader.js:543:3)
注意 − 要檢視實際結果,請在本地執行上述程式碼。
執行上述程式後,Node.js querystring.parse() 方法將返回一個包含鍵值對的物件。
[Object: null prototype] {
name: 'varma1',
role: 'writer',
tech: 'nodejs',
permission: 'true'
}
示例
如果 sep 和 eq 引數中提供的值與指定 URL 字串的分隔符不匹配,則 Node.js querystring.parse() 方法將無法正常工作。如果匹配,它將返回包含鍵值對的物件。
在下面的程式中,我們將 && 傳遞給 sep 引數,並將 = 傳遞給 Node.js querystring.parse() 方法的 eq 引數。
const querystring = require('node:querystring');
let urlQuery = "name=varma1&&role=writer&&tech=nodejs&&permission=true";
console.log(querystring.parse(urlQuery, "&&", "="));
輸出
internal/modules/cjs/loader.js:596 throw err; ^ Error: Cannot find module 'node:querystring' at Function.Module._resolveFilename (internal/modules/cjs/loader.js:594:15) at Function.Module._load (internal/modules/cjs/loader.js:520:25) at Module.require (internal/modules/cjs/loader.js:650:17) at require (internal/modules/cjs/helpers.js:20:18) at Object.<anonymous> (/home/cg/root/63a03fcfc3513/main.js:1:83) at Module._compile (internal/modules/cjs/loader.js:702:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10) at Module.load (internal/modules/cjs/loader.js:612:32) at tryModuleLoad (internal/modules/cjs/loader.js:551:12) at Function.Module._load (internal/modules/cjs/loader.js:543:3)
注意 − 要檢視實際結果,請在本地執行上述程式碼。
如果執行上述程式,則輸出將顯示如下。
[Object: null prototype] {
name: 'varma1',
role: 'writer',
tech: 'nodejs',
permission: 'true'
}
示例
如果提供的 sep 和 eq 值與指定的 URL 字串的分隔符不匹配,則 Node.js querystring.parse() 方法將無法按預期工作。如果匹配,它將返回包含鍵值對的物件。
在下面的程式中,我們將 & 傳遞給 sep 引數,並將 − 傳遞給 Node.js querystring.parse() 方法的 eq 引數。
const querystring = require('node:querystring');
let urlQuery = "User-john&role−softwareeng&tech−HTML&permission−false";
console.log(querystring.parse(urlQuery, "&", "−"));
輸出
internal/modules/cjs/loader.js:596 throw err; ^ Error: Cannot find module 'node:querystring' at Function.Module._resolveFilename (internal/modules/cjs/loader.js:594:15) at Function.Module._load (internal/modules/cjs/loader.js:520:25) at Module.require (internal/modules/cjs/loader.js:650:17) at require (internal/modules/cjs/helpers.js:20:18) at Object.<anonymous> (/home/cg/root/63a03fcfc3513/main.js:1:83) at Module._compile (internal/modules/cjs/loader.js:702:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10) at Module.load (internal/modules/cjs/loader.js:612:32) at tryModuleLoad (internal/modules/cjs/loader.js:551:12) at Function.Module._load (internal/modules/cjs/loader.js:543:3)
注意 − 要檢視實際結果,請在本地執行上述程式碼。
如果執行上述程式,則輸出將顯示如下。
[Object: null prototype] {
User: 'john',
role: 'softwareeng',
tech: 'HTML',
permission: 'false'
}
示例
Node.js querystring.parse() 方法將返回 maxkeys 引數中指定的最大鍵數之前的 鍵和 值對。
在下面的示例中,我們執行兩種情況。在第一種情況下,我們將 1 傳遞給 maxkeys 引數。在第二種情況下,maxkeys 設定為 2。
const { url } = require('node:inspector');
const querystring = require('node:querystring');
let QueryString = "User−john&role−softwareeng&tech−HTML&permission−false";
console.log(querystring.parse(QueryString, "&", "−", { maxKeys: 1}));
console.log(querystring.parse(QueryString, "&", "−", { maxKeys: 2}));
輸出
internal/modules/cjs/loader.js:596 throw err; ^ Error: Cannot find module 'node:inspector' at Function.Module._resolveFilename (internal/modules/cjs/loader.js:594:15) at Function.Module._load (internal/modules/cjs/loader.js:520:25) at Module.require (internal/modules/cjs/loader.js:650:17) at require (internal/modules/cjs/helpers.js:20:18) at Object.<anonymous> (/home/cg/root/63a03fcfc3513/main.js:1:79) at Module._compile (internal/modules/cjs/loader.js:702:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10) at Module.load (internal/modules/cjs/loader.js:612:32) at tryModuleLoad (internal/modules/cjs/loader.js:551:12) at Function.Module._load (internal/modules/cjs/loader.js:543:3)
注意 − 要檢視實際結果,請在本地執行上述程式碼。
如果執行上述程式,則輸出將顯示如下。
[Object: null prototype] { User: 'john' }
[Object: null prototype] { User: 'john', role: 'softwareeng' }
示例
如果我們向 maxkeys 引數提供 0,則鍵計數限制將無限。
在下面的程式中,我們將 0 傳遞給 Node.js querystring.parse() 方法的 maxkeys 引數。
const { url } = require('node:inspector');
const querystring = require('node:querystring');
let QueryString = "User−Kasyap&role−Manager&Exp−eightyrs&permission−true";
console.log(querystring.parse(QueryString, "&", "−", { maxKeys: 0}));
輸出
internal/modules/cjs/loader.js:596 throw err; ^ Error: Cannot find module 'node:inspector' at Function.Module._resolveFilename (internal/modules/cjs/loader.js:594:15) at Function.Module._load (internal/modules/cjs/loader.js:520:25) at Module.require (internal/modules/cjs/loader.js:650:17) at require (internal/modules/cjs/helpers.js:20:18) at Object.<anonymous> (/home/cg/root/63a03fcfc3513/main.js:1:79) at Module._compile (internal/modules/cjs/loader.js:702:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10) at Module.load (internal/modules/cjs/loader.js:612:32) at tryModuleLoad (internal/modules/cjs/loader.js:551:12) at Function.Module._load (internal/modules/cjs/loader.js:543:3)
注意 − 要檢視實際結果,請在本地執行上述程式碼。
如果執行上述程式,則輸出將顯示如下。
[Object: null prototype] {
User: 'Kasyap',
role: 'Manager',
Exp: 'eightyrs',
permission: 'true'
}
