• Где можно почитать по сессии и работу с ними в node.js?

    @evg_96 Автор вопроса
    RidgeA, Разве это не в БД нужно хранить? Или я чего не понимаю?
  • Где можно почитать по сессии и работу с ними в node.js?

    @evg_96 Автор вопроса
    Abcdefgk А на практике как? Как реализовать работу с сессиями без сторонних модулей? И что конкретно должно храниться в сессии?
  • Где можно почитать по сессии и работу с ними в node.js?

    @evg_96 Автор вопроса
    RidgeA Ну какой либо готовый middleware кто то же писал...Хочется разобраться как самому написать подобное или хотя бы просто понять как все устроено без использования готовых решений и фреймворков.
    Как я понял сессии используются при авторизации пользователей. Что конкретно сохраняют в сессии?
  • Как разобраться с авторизацией в Node.js?

    @evg_96 Автор вопроса
    Abcdefgk, да middleware есть, по сути тоже самое что и express, только плюс в том что все там на async/await. Для Koa есть модуль koa-passport
  • Как разобраться с авторизацией в Node.js?

    @evg_96 Автор вопроса
    Abcdefgk Работа с авторизацией, конкретно с passport, различается в условиях работы с различными фреймворками? Или без разницы? Просто вы говорите про express.
    настроить модули express-session и coockie-parser

    Непонятно какие тогда модули дополнительные использовать в других фреймворках...
    Я начинал читать ту книгу которую вы советовали, прочитал до середины. Дальше как то уже не пошло что то. Очень много ошибок и старого кода.
    Сейчас же начал использовать Koa.
  • Что делать если не загружается windows (ноутбук Lenovo), зависает на логотипе?

    @evg_96 Автор вопроса
    res2001, чет не подумал вставить его в стационарный пк. попробую
  • Как разобраться с авторизацией в Node.js?

    @evg_96 Автор вопроса
    Илья Герасимов, Во первых там все на инглише и он мне пока еще не подвластен. Во вторых посмотрите пример кода, я выше кидал, и что то мне не кажется что это все очень просто.
    К тому же эти базовые знания я бы с удовольствием изучил,но я хз по каким материалам. На русском как всегда ничего путного нет. Да можно почитать википедию по некоторым топикам, но думаю это не особо продвинет меня с практической точки зрения.
  • Как разобраться с авторизацией в Node.js?

    @evg_96 Автор вопроса
    Decadal, К сожалению больше курсов я не нашел. Смотрел и другие конечно, но там только основы. Пробовал книги читать, но там либо базовые вещи, либо код уже не рабочий, сильно устарел.
    Сейчас конкретно необходимо прокачать знания в БД, конкретно в mongo/mongoose хотя бы + авторизация (passoport), но вот без знаний английского я не понимаю как мне действовать, потому что по сути обучающих материалов на русском нормальных нет.
  • Как разобраться с авторизацией в Node.js?

    @evg_96 Автор вопроса
    Владимир Муковоз, А я что делаю? Вопрос то хоть читали? Я и пытаюсь изучить ноду
  • Как разобраться с авторизацией в Node.js?

    @evg_96 Автор вопроса
    Decadal Данный курс базовый, ранее работы с backend не подразумевалось. Но меня удивляло то, что кто проходил данный курс онлайн, либо чертовы гении, либо у них действительно большой опыт на другой платформе был. Что не спросит у них автор курса, то они уже знакомы в той или иной степени...При разборе той же mongodb, к удивлению все были уже знакомы с реляционной моделью, следовательно им легче было понимать суть БД, если так можно выразиться. Да и дз они выполняли достаточно легко.
    В общем то это 6 из 10 уроков, до этого я также останавливался и пытался что то более подробно разобрать, та же работа с mongoose, видео из курса мне явно было мало чтобы понять хоть какие то основы, потом нашел статьи, почитал как создавать схемы, модели. В общем самые базовые знания получил. Так же было с потоками, с koa, маршрутизацией, middleware.

    Сессии до это в каком то уроке разбирались, но вскользь, пару минут уделили им все. Всем было все понятно, один я ничего не понял. С шифрованием вроде как что да понял немного, ну основные понятия, что нельзя хранить явно пароль в бд, храним только hash и соль. Поток отправляем данные из формы, сравниваем hash, совпадает, впускаем, не совпадает, не впускаем. Конкретных реализаций я не понял, слишком много кода было и запутано как то все.
    БД из всего этого мне наиболее понятны. Добавлять, удалять, создавать данные я могу вроде как.

    Вот эта вот каша из всех файлов примера простой авторизации. Я вообще не понимаю как можно в этих +-400 строках что то понять, если нет опыта никакого.

    https://pastebin.com/Hn1izjQe
  • Как разобраться с авторизацией в Node.js?

    @evg_96 Автор вопроса
    ой всё, Что и как конкретно изучать? У меня нет понятия как менее безболезненно влиться во все это...
  • Как разобраться с авторизацией в Node.js?

    @evg_96 Автор вопроса
    ой всё, По отдельности все это конечно есть, но вот конкретные реализация на ноде, да еще и на русском это постараться нужно чтобы найти. все это в комплексе Я раньше backend не изучал, работал только на фронте, поэтому очень сложно сейчас войти в тему.
  • Как разобраться с авторизацией в Node.js?

    @evg_96 Автор вопроса
    Alexander, Я учу, но начал недавно, поэтому еще не достаточно уровня чтобы хотя бы понимать текст на английском, не говоря уже о видео.
  • Почему не ставится Package Control в ST3 Build 3143?

    @evg_96 Автор вопроса
    Martovitskiy Действительно в игноре он был...спасибо
  • Почему не приходить тело запроса?

    @evg_96 Автор вопроса
    Negwereth Все. Вопрос решен. Нужно было добавить
    xhr.setRequestHeader("Content-Type", "application/json");
  • Почему не приходить тело запроса?

    @evg_96 Автор вопроса
    Negwereth
    Он подключен. Но почему то возвращается просто пустой объект.
    const bodyParser = require('koa-bodyparser');
    const config = require('config');
    
    exports.init = app => app.use(bodyParser({ 
      jsonLimit: config.get('jsonLimit')
    }));
  • Как обработать запросы с методами GET, POST, DELETE?

    @evg_96 Автор вопроса
    RidgeA, На счет обработчиков в разные методы/модули это да...тут для компактности просто написал.
    На счет проверки наличия файла по сути одно и тоже, что через событие error + error.code, что через open.
    На счет mime, нашел модуль, но что то так и не понял как использовать...

    А вот на счет промисов не понял. Где в данном коде стоило бы использовать их?
  • Как обработать запросы с методами GET, POST, DELETE?

    @evg_96 Автор вопроса
    RidgeA, В общем спустя еще пару часов все таки написал вроде как рабочий вариант...
    Единственное что вызывает вопросы, это mime типы. Как их определять и прописывать в коде. У меня получает может быть запрос на любой файл. Как узнать какой отправить mime не знаю.
    Посмотрите пожалуйста, если какие то замечания?

    const http = require("http");
    const fs = require("fs");
    const url = require("url");
    
    const public = __dirname + "/files";
    
    http.createServer((req, res) => {
      const pathname = url.parse(req.url).pathname;
    
      if (pathname === "/") {
        res.writeHead(200, {
          "Content-Type": "text/html"
        });
    
        fs.createReadStream(__dirname + "/index.html").pipe(res);
      }
    
      switch (req.method) {
        case "GET": {
          const file = fs.createReadStream(public + pathname);
    
          file.on("error", err => {
            if (err.code === "ENOENT") {
              res.statusCode = 404;
    
              res.end("File not found");
            } else {
              res.statusCode = 500;
    
              res.end("Server error");
            }
          });
    
          file.on("open", () => {
            res.writeHead(200, {
              "Content-Type": "text/html" // ???
            });
          });
    
          res.on("close", () => {
            file.destroy();
          });
    
          file.pipe(res);
    
          break;
        }
    
        case "POST": {
          const file = fs.createWriteStream(public + pathname, {
            flags: "wx"
          });
    
          const maxSize = 1024 * 1024;
    
          let size = 0;
    
          file.on("error", err => {
            if (err.code === "EEXIST") {
              res.statusCode = 409;
    
              res.end("File already exists");
            } else {
              if (!res.headersSent) {
                res.statusCode = 500;
    
                res.setHeader("Connection", "close");
    
                res.write("Internal error");
              }
    
              fs.unlink(pathname, err => {
                res.end();
              });
            }
          });
    
          file.on("close", () => {
            res.statusCode = 200;
    
            res.end("OK");
          });
    
          req.on("data", chunk => {
            size += chunk.length;
    
            if (size > maxSize) {
              res.statusCode = 413;
    
              res.setHeader("Connection", "close");
    
              res.end("Your data too big for my little server");
    
              file.destroy();
    
              file.unlink(err => {
                if (err) {
                  throw err;
                }
              });
            }
          });
    
          req.pipe(file);
    
          break;
        }
    
        case "DELETE": {
          fs.unlink(public + pathname, err => {
            if (err) {
              res.statusCode = 500;
    
              res.end("Server error");
            } else {
              res.statusCode = 200;
    
              res.end("File was deleted");
            }
          });
    
          break;
        }
    
        default: {
          res.statusCode = 502;
    
          res.end("Not implemented");
        }
      }
    }).listen(3000);
  • Как обработать запросы с методами GET, POST, DELETE?

    @evg_96 Автор вопроса
    RidgeA Проблема в том, что я вообще не понимаю как написать это так чтобы это было скорее хороший код нежели гавно. В Node.js столько всего нужно проверить, правильно подписаться на разные события, не забыть что то закрыть, как то обработать ошибки и овер много всего еще. Я только недавно узнал что лучше работать с данными с помощью потоков, до этого пробовал все делать так, выгружать все в память и потом отдавать пользователю...
    Даже вот эта вот заготовка которая получилась, не уверен что это лучшая практика. Правильно ли вообще что вынес эти обработчики каждого метода запроса в отдельные методы или нет или нужно как то по другому...
    В общем в node.js черт ногу сломит на мой взгляд. Писать фронтенд на JS мне в 100500 раз легче, а на сервере ой как не легко все понять и как писать нормально.
    Плюс еще маршрутизация...Дико не понятно как правильно обрабатывать и как вообще работать с путями.
    Я когда пробовал писать, у меня явно получалось не очень. Везде какие то пути из 100500 частей, и явно со своими изъянами в безопасности..
  • Что можно почитать разработчику ПО?

    @evg_96
    Алексей Мищенко, Для продвижения чего? Вы просто так написали как будто изучение азов плюсов это обязательный шаг перед изучение c#