1. Вступительный анализ
В этой статье рассказывается об этих трех модулях вместе, потому что они не очень длинные по длине, а во -вторых, между ними существуют зависимости, поэтому они вводятся и анализируются в последовательности. Я не скажу много чепухи, пожалуйста, смотрите в следующем документе:
(1), «Модуль URL»
Позвольте мне немного каштана:
Кода -копия выглядит следующим образом:
var url = require ('url');
var QueryUrl = "http: // localhost: 8888/bb? name = bigbear & memo = helloworld";
console.log (typeof url.parse (Queryurl));
console.log (url.parse (Queryurl));
Результаты работы:
Кода -копия выглядит следующим образом:
объект // typeof
{
Протокол: 'http:',
Слэш: правда,
auth: null,
Ведущий: «Localhost: 8888»,
Порт: '8888',
Имя хоста: «Localhost»,
хэш: null,
Поиск: '? name = bigbear & memo = helloworld',
Запрос: 'name = bigbear & memo = helloworld',
pathname: '/bb',
Путь: '/bb? name = bigbear & memo = helloWorld',
href: 'http: // localhost: 8888/bb? name = bigbear & memo = helloworld'
}
Объясните следующее:
Протокол: протокол запроса
Хост: Имя хоста URL было преобразовано в нижнюю регистрацию, включая информацию о порте
Auth: информация о аутентификации часть URL
Имя хоста: имя хоста хоста, преобразована в строчный
Порт: Номер порта часть хоста
Pathname: Path Part of URL -адреса, расположенная после имени хоста до запроса
Поиск: раздел строки запроса URL, включая знак вопроса в начале.
Путь: Путь и поиск связаны.
Запрос: Запросите параметр части (часть строки после знака вопроса) или используйте QueryString.parse () для анализа возвращаемого объекта.
Хэш: следующая часть URL " #" (включая # символ)
Дополнительный API: "url.format (urlobj)"
Функция: введите объект URL, чтобы вернуть форматированную строку URL.
(2), "Модуль Querystring"
Модуль «QueryString» используется для преобразования строк параметров URL и объектов параметров в друг другу, как показано ниже:
Кода -копия выглядит следующим образом:
var url = require ('url');
var qs = require ('querystring');
var QueryUrl = "http: // localhost: 8888/bb? name = bigbear & memo = helloworld";
QueryUrl = url.parse (Queryurl) .Query;
console.log (Queryurl);
console.log (qs.parse (Queryurl));
Результаты работы следующие:
Кода -копия выглядит следующим образом:
Имя = BigBear & Memo = helloWorld
{
Название: 'Bigbear',
Памятка: «Helloworld»
}
Дополнительный API:
QueryString.Stringify (obj, [sep], [eq]) ----- сериализовать объект на строку запроса.
Вы можете выбрать, следует ли переопределить сплиттер по умолчанию ('&') и allocator ('=').
QueryString.Stringify ({foo: 'bar', baz: 'qux'}, ';', ':') // возвращать следующую строку 'foo: bar; baz: qux'
queryString.parse (str, [sep], [eq], [options]) ----- DeSerialize строка запроса в объект. Вы можете выбрать, следует ли переопределить сплиттер по умолчанию ('&') и allocator ('=').
Объект параметров может содержать атрибут Maxkeys (по умолчанию 1000), который можно использовать для ограничения количества обработанных клавиш. Установка его на 0 может удалить количество клавиш.
Пример: queryString.parse ('foo = bar & baz = qux & baz = quux & corge') // {foo: 'bar', baz: ['qux', 'quux'], corge: ''}
(3), «Модуль пути»
Этот модуль содержит набор инструментов для обработки и преобразования путей файлов. Почти все методы конвертируют только строки, и файловая система не будет проверять, правдивый путь или нет.
Давайте сначала устроить простой каштан:
Кода -копия выглядит следующим образом:
var url = require ('url');
var qs = require ('querystring');
var path = require ("path");
var QueryUrl = "http: // localhost: 8888/bb? name = bigbear & memo = helloworld";
var root = path.basename (Queryurl);
console.log (root); // bb? name = bigbear & memo = helloworld
Возвращает последнюю часть пути, разделенную с "/"
Кода -копия выглядит следующим образом:
var url = require ('url');
var qs = require ('querystring');
var path = require ("path");
var QueryUrl = "http: // localhost: 8888/bb? name = bigbear & memo = helloworld";
var root = path.basename (Queryurl);
console.log (root); // bb? name = bigbear & memo = helloworld
var ext = path.extname (root);
console.log (ext || "не ext name!"); // не ext name!
Из -за слишком большого количества API, только несколько обычно используемых перечислены выше, и каждый должен тщательно прочитать документ.
2. Комплексный каштан
Описание сценария ---- Сервер получает запросы в разных ситуациях и выполняет различную обработку с помощью «URL». Код заключается в следующем:
(1), создать "index.html"
Кода -копия выглядит следующим образом:
<! Doctype html>
<html>
<голова>
<название> BigBear </title>
<Meta Content = "IE = 8" http-equiv = "x-ua-совместимый"/>
<meta http-equiv = "content-type" content = "text/html; charset = utf-8">
<стиль типа = "text/css">
div {
маржинальная версия: 50px;
Ширина: 100%;
поля: 0px;
Высота: 120px;
высота линии: 120px;
Цвет: #ffff;
размер шрифта: 22px;
Фон:#FF9900;
Текст-альбом: Центр;
}
</style>
<script src = "index.js"> </script>
</head>
<тело>
<div> Привет, Большой Медведь! </div>
</body>
</html>
(2), создать "index.js"
оповещение ("Привет, BB!"); // только одно предложение кода для тестирования
(3) Создать "server.js"
Кода -копия выглядит следующим образом:
var http = require ("http");
var fs = require ('fs');
var url = require ('url');
var path = require ("path");
http.createserver (function (запрос, ответ) {
var method = request.method;
method = method.tolowercase ();
var filename = path.basename (request.url);
var extname = path.extname (filename);
var root = "./";
if ("get" == method) {
if (extname) {
fs.readfile ("./" + filename, "utf-8", function (ошибка, данные) {
if (ошибка) ошибки бросает;
response.writehead (200, {
"Контент-тип": {
".css": "Text/css",
".js": "Приложение/JavaScript"
} [extname]
});
response.write (data);
response.end ();
});
}
еще{
fs.readfile (root + "index.html", "utf-8", function (ошибка, данные) {
if (ошибка) ошибки бросает;
response.writehead (200, {
"Контент-тип": "Текст/html"
});
response.write (data);
response.end ();
});
}
}
else if ("post" == request.url) {
// обрабатывать сообщение здесь
}
}). Слушайте (8888);
console.log ("Запуск веб-сервера, порт на ---> 8888");
Запустите Node Server.js.
Три, давайте обобщусь
(1) Понять связь между вышеуказанными тремя модулями и гибко используйте их.
(2) Опытный в использовании трех модулей, связанных с API «URL, Querystring и Path».
(3), и, наконец, подчеркните: понимать намерение кода в приведенном выше примере, постоянно рефактор и суммирование.