# Отдача HTML страниц из файлов в NodeJS

Давайте теперь по запросу будем отдавать не какой-то текст, а корректно оформленную HTML страницу. Пусть такая страница хранится в файле `page.html`:

`<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>my page</title> </head> <body> <p> my first page on NodeJS </b> </body> </html>`

Давайте по запросу прочитаем эту страницу из файла и отправим ее в браузер:

`http.createServer(async (request, response) => { if (request.url != '/favicon.ico') { let text = await fs.promises.readFile('page.html', 'utf8'); response.writeHead(200, {'Content-Type': 'text/html'}); response.write(text); response.end(); } }).listen(3000);`

Как вы видите, чтение файла осуществляется асинхронным образом. В этом случае в ожидании считывания файла с диска сервер сможет обрабатывать запросы других пользователей к нашему серверу.

Дан объект с URL-лами и соответствующими им именам HTML страниц:

`let obj = { '/page1': 'file1.html', '/page2': 'file2.html', '/page3': 'file3.html', }`

Сделайте сервер на основе этого объекта. При запросе существующего в объекте адреса отдавайте соответствующую страницу, а при запросе отсутствующего - сообщение об ошибке и статус `404`.

← →
↑