Сервер должен выполнять различные операции в соответствии с различными URL -адресами или запросами, и мы можем реализовать этот шаг посредством маршрутизации.
На первом шаге нам нужно сначала проанализировать путь URL -адреса запроса, и мы представляем модуль URL.
Давайте добавим некоторую логику в функцию OnRequest (), чтобы узнать путь URL -адреса, запрашиваемый браузером:
Кода -копия выглядит следующим образом:
var http = require ("http");
var url = require ("url");
функция start () {
функция OnRequest (запрос, ответ) {
var pathname = url.parse (request.url) .pathname;
console.log ("запрос на" + pathname + "получен.");
response.writehead (200, {"content-type": "text/plain"});
response.write ("Hello World");
response.end ();
}
http.createserver (onrequest) .listen (8888);
console.log («Сервер начался»);
}
exports.start = start;
ОК, PathName - это путь запроса, мы можем использовать его для различения различных запросов, чтобы мы могли использовать разные коды для обработки запросов от /start и /upload.
Далее мы напишем маршрут и создадим файл с именем router.js, код выглядит следующим образом:
Кода -копия выглядит следующим образом:
Функциональный маршрут (pathname) {
console.log ("ate to Mraking запрос на" + pathname);
}
exports.route = route;
Этот код ничего не делает, мы сначала интегрируем маршрут и сервер.
Затем мы расширяем функцию Server () start (), запускаем функцию маршрутизации в start () и передаем им имя в качестве параметра.
Кода -копия выглядит следующим образом:
var http = require ("http");
var url = require ("url");
Function Start (route) {
функция OnRequest (запрос, ответ) {
var pathname = url.parse (request.url) .pathname;
console.log ("запрос на" + pathname + "получен.");
маршрут (pathname);
response.writehead (200, {"content-type": "text/plain"});
response.write ("Hello World");
response.end ();
}
http.createserver (onrequest) .listen (8888);
console.log («Сервер начался»);
}
exports.start = start;
В то же время мы будем расширять index.js соответственно, чтобы функция маршрутизации могла быть введена в сервер:
Кода -копия выглядит следующим образом:
var server = require ("./ server");
var router = require ("./ router");
Server.Start (Router.Route);
Запустите index.js и получите доступ к пути, например, /загрузка, вы найдете выход консоли. Собираюсь направить запрос на /загрузку.
Это означает, что наш HTTP -сервер и модуль маршрутизации запроса уже могут общаться друг с другом.
В следующем разделе мы будем реализовать различные отзывы для различных запросов URL -адресов.