Итак, добро пожаловать в мою первую статью, мы собираемся создать веб-сервер с помощью NodeJS. Я предполагаю, что вы уже знаете, что такое веб-сервер или запрос/ответ.
Если вы не знаете, что это такое, вот простое объяснение.
Веб-сервер хранит и доставляет содержимое веб-сайта, например текст, изображения, видео и данные приложений, клиентам, которые его запрашивают. Наиболее распространенным типом клиента является программа веб-браузера, которая запрашивает данные с вашего веб-сайта, когда пользователь щелкает ссылку или загружает документ на странице, отображаемой в браузере.¹
Мы используем модуль http от NodeJS для нашего общения на уровне API. Мы вызываем наш модуль, используя ключевое слово «require». Как ниже в первой строке.
const http = require("http"); // constants const hostname = "localhost"; const port = 8080; const requestListener = function (request, response) { var url = request.url; // get the url from the request response.end(); }; // create the server const server = http.createServer(requestListener); server.listen(port, hostname, () => { // start the server console.log(`Server running at http://${hostname}:${port}/`); });
Этот блок кода в основном помогает вам запустить ваш самый первый и базовый веб-сервер на вашем хосте и порту. Вы можете изменить эти статические переменные, если хотите.
if (url === "/about") { response.statusCode = 200; response.write("Welcome to the about page!"); } else { response.statusCode = 404; response.statusMessage = "Page not found!" }
Теперь я собираюсь добавить этот блок кода внутрь функции requestListener. Эти операторы if-else принимают URL-адрес и помогают нам ответить на наш запрос.
Теперь давайте посмотрим на запись наших запросов в другой файл. Для этого мы будем использовать модуль «fs» от NodeJS. Этот модуль в основном помогает нам открывать, писать, сохранять и закрывать файл.
Сначала я открыл новый файл с именем «log4server.js». Затем вам нужно снова импортировать наш модуль с ключевым словом «require».
const fs = require("fs"); exports.logFile = (request, response, url) => { var date = new Date(); let logger = date + ` => ${request.method}: ${url}, status: ${response.statusCode} ` + "\n" + JSON.stringify(request.headers) + "\n" + "---------------------" + "\n"; console.log(logger); fs.appendFile("logger.txt", logger, "utf8", (err) => { if (err) { console.log("Error while appending file : ", err); throw err; } else { console.log("The file has been saved!"); } }); };
Эта функция помогает нам создать наш журнал с нашим запросом и ответом, а затем в конце функции он записывает журнал в текстовый файл с именем «logger.txt». Но, как вы знаете, мы написали эту функцию в другом классе. Поэтому нам нужно импортировать его в наш файл «server.js».
const logger = require("./log4server.js"); logger.logFile(request, response, url);
Мы можем использовать функцию logFile таким образом. Мы передаем параметры внутри функции, импортированной из нашего файла «log4server.js».
Так что это был конец, я надеюсь, что это поможет.