Heim  >  Artikel  >  Web-Frontend  >  Teilen Sie die Einführung von queryString in NodeJS

Teilen Sie die Einführung von queryString in NodeJS

零下一度
零下一度Original
2017-06-26 13:37:131412Durchsuche

Die vorherigen Wörter

Ob Front-End oder Back-End, ein häufiges Anwendungsszenario ist die Verarbeitung von Parametern in URLs. Das nodeJS-Modul queryString stellt einige Tools zum Verarbeiten von Abfragezeichenfolgen bereit. In diesem Artikel wird queryString

var querystring = require('querystring');/*{ unescapeBuffer: [Function],
  unescape: [Function: qsUnescape],
  escape: [Function],
  encode: [Function],
  stringify: [Function],
  decode: [Function],
  parse: [Function] } */console.log(querystring);

Serialisierung

[querystring.parse(str[, sep[, eq[ , Optionen) im Detail vorgestellt ]]])】

Die Methode querystring.parse() kann eine URL-Abfragezeichenfolge (str) in eine Sammlung von Schlüssel-Wert-Paaren analysieren. Die Parameter lauten wie folgt

str <String> 要解析的 URL 查询字符串。
sep <String> 用于界定查询字符串中的键值对的子字符串。默认为 '&'。
eq <String> 用于界定查询字符串中的键与值的子字符串。默认为 '='。
options <Object>decodeURIComponent <Function> 当解码查询字符串中百分号编码的字符时使用的函数。默认为 querystring.unescape()   
maxKeys <number> 指定要解析的键的最大数量。默认为 1000。指定为 0 则移除键数的限制
var querystring = require('querystring');var str = 'foo=bar&abc=xyz&abc=123';
console.log(querystring.parse(str));//'{ foo: 'bar', abc: [ 'xyz', '123' ] }'

Der zweite Parameter wird verwendet, um die Teilzeichenfolge des Schlüssel-Wert-Paares in der Abfragezeichenfolge zu definieren

var querystring = require('querystring');var str = 'foo=bar&abc=xyz&abc=123';
console.log(querystring.parse(str,'a'));//{ foo: 'b', 'r&': '', bc: [ 'xyz&', '123' ] }

Der dritter Parameter Parameter werden verwendet, um Teilzeichenfolgen von Schlüsseln und Werten in der Abfragezeichenfolge zu definieren

var querystring = require('querystring');var str = 'foo=bar&abc=xyz&abc=123';
console.log(querystring.parse(str,'&','c'));//{ 'foo=bar': '', ab: [ '=xyz', '=123' ] }

[Hinweis] Das von der Methode querystring.parse() zurückgegebene Objekt erbt nicht aus JavaScripts Object . Dies bedeutet, dass typische Objektmethoden wie obj.toString(), obj.hasOwnProperty() usw. nicht definiert sind und nicht verwendet werden können

Standardmäßig werden prozentcodierte Zeichen in der Abfragezeichenfolge als UTF betrachtet -8-Kodierung wird verwendet. Wenn eine andere Zeichenkodierung verwendet wird, muss die Option decodeURIComponent

var querystring = require('querystring');//{ w: '����', foo: 'bar' }console.log(querystring.parse('w=%D6%D0%CE%C4&foo=bar', null, null,{ decodeURIComponent: 'gbkDecodeURIComponent' }));

[querystring.stringify(obj[, sep][, eq][, options]) 】

Die Methode querystring.stringify() ist die umgekehrte Operation der Methode querystring.parse(). Sie generiert eine URL-Abfragezeichenfolge aus einem bestimmten Objekt, indem sie die eigenen Eigenschaften des Objekts durchläuft

obj <Object> 要序列化成一个 URL 查询字符串的对象
sep <String> 用于界定查询字符串中的键值对的子字符串。默认为 '&'eq <String> 用于界定查询字符串中的键与值的子字符串。默认为 '='options
    encodeURIComponent <Function> 当把对URL不安全的字符转换成查询字符串中的百分号编码时使用的函数。默认为 querystring.escape()
var querystring = require('querystring');//'foo=bar&baz=qux&baz=quux&corge='console.log(querystring.stringify({ foo: 'bar', baz: ['qux', 'quux'], corge: '' }));
var querystring = require('querystring');//'foo:bar;baz:qux'console.log(querystring.stringify({foo: 'bar', baz: 'qux'}, ';', ':'));

Kodierung

[querystring.escape(str) 】

Die Methode querystring.escape() führt eine URL-Prozentkodierung für die angegebene Zeichenfolge durch, genau wie die Methode encodeURIComponent.

Die Methode querystring.escape() wird von querystring.stringify() verwendet. und wird normalerweise nicht direkt verwendet. Der Grund, warum es für die Außenwelt offen ist, besteht darin, dass die Codierungsimplementierung umgeschrieben werden kann, indem bei Bedarf eine Funktion zu querystring.escape zugewiesen wird

var querystring = require('querystring');
console.log(encodeURIComponent('测试'));//%E6%B5%8B%E8%AF%95console.log(querystring.escape('测试'));//%E6%B5%8B%E8%AF%95
[querystring.unescape(str) ]

Die Methode querystring.unescape() führt die Dekodierung der URL-Prozent-codierten Zeichen auf der angegebenen Zeichenfolge durch.

Die Methode querystring.unescape() wird von querystring.parse() und verwendet Normalerweise nicht direkt verwendet. Der Grund, warum es für die Außenwelt offen ist, besteht darin, dass die Dekodierungsimplementierung bei Bedarf überschrieben werden kann, indem querystring.unescape eine Funktion zugewiesen wird.

Die Methode querystring.unescape() verwendet standardmäßig die integrierte decodeURIComponent()-Methode von JavaScript, um

var querystring = require('querystring');
console.log(decodeURIComponent('%E6%B5%8B%E8%AF%95'));//'测试'console.log(querystring.unescape('%E6%B5%8B%E8%AF%95'));//'测试'

GET

Die von get angeforderten Daten werden in der URL

http://127.0.0.1:8080/home/test?a=1&b=2
var http = require('http');var url = require('url');var querystring = require('querystring');
http.createServer(function(req,res){var urlObj = url.parse(req.url);var query = urlObj.query;var queryObj = querystring.parse(query);
    console.log(req.url);//'/home/test?a=1&b=2'console.log(query);//'a=1&b=2'console.log(queryObj);//{ a: '1', b: '2' }}).listen(8080);

POST

Die per Post angeforderten Daten werden in den Puffer geschrieben, und die Datenspleißverarbeitung muss über das Datenereignis und das Endereignis der Anforderung durchgeführt werden

var http = require('http');var url = require('url');var querystring = require('querystring');
http.createServer(function(req,res){var str = '';  
    req.on('data', function(thunk){
        str += thunk;
    });
    req.on('end', function(){
        console.log(str);//'name=a&email=b%40b.com'var queryObj = querystring.parse(str);
        console.log(queryObj);//{ name: 'a', email: 'b%40b.com' }    }); 

}).listen(8080);

Das obige ist der detaillierte Inhalt vonTeilen Sie die Einführung von queryString in NodeJS. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn