Простой сервер для NodeJS

16 февраля, 2019
1 минута чтения

Если вам требуется создать сервер на Node, который будет отдавать файлы (включая бинарные), то следующий сниппет для вас. Сохраните к себе статью в закладки.

(async function web() {
  const http = require('http');
  const url = require('url');
  const path = require('path');
  const fs = require('fs');
  const WEB_PORT = Number(process.env.PORT) || 9000;
  http.createServer((req, res) => {
    const uri = url.parse(req.url).pathname;
    let filename = path.join(process.cwd(), uri);
    fs.exists(filename, (exists) => {
      if (!exists) {
        res.writeHead(404, {'Content-Type': 'text/plain'});
        res.write('404 Not Found\n');
        res.end();
        return;
      }
      if (fs.statSync(filename).isDirectory()) {
        filename = path.join(filename, 'index.html');
      }
      fs.readFile(filename, 'binary', (error, file) => {
        if (error) {
          res.writeHead(500, {'Content-Type': 'text/plain'});
          res.write('Oops 🤷️');
          console.log('error', error.toString());
          res.end();
          return;
        }
        res.writeHead(200);
        res.write(file, 'binary');
        res.end();
      });
    });
  }).listen(WEB_PORT);
  console.log('info', 'Web server started');
})();

Денис Сергеевич Басковский

Философ, изобретатель и поэт.

Добавить комментарий Отменить ответ

Отключение минификации Nuxt
Предыдущая статья

Как отключить минификацию скриптов на Nuxt

blog.baskovsky
Следующая статья

Новый стиль блога на Blogger

Exit mobile version