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

Давайте теперь по запросу будем отдавать не какой-то текст, а корректно оформленную HTML страницу. Пусть такая страница хранится в файле page.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>

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

index.jshttp.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);

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

Задание 1

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

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

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