Все сервисы Хабра

Сообщество IT-специалистов

Ответы на любые вопросы об IT

Профессиональное развитие в IT

Удаленная работа для IT-специалистов

Войти на сайт
  • Все вопросы
  • Все теги
  • Пользователи

Хабр Q&A — вопросы и ответы для IT-специалистов

Получайте ответы на вопросы по любой теме из области IT от специалистов в этой теме.

Узнать больше
другие проекты хабра
  • Хабр
  • Карьера
  • Фриланс
Задать вопрос
lungdesire29

Валерий Орлов

  • 0
    вклад
  • 31
    вопрос
  • 0
    ответов
  • 0%
    решений
Лайки
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Как отследить и скопировать изменённый файл через модуль watchdog?

    Vindicar
    Vindicar @Vindicar
    Класс Observer запускает отдельный поток исполнения, твой time.sleep(10) на него не влияет никоим образом.
    Т.е. по идее приложение будет реагировать на изменение файла немедленно.

    Из вопроса неясно, происходит ли вызов обработчика вообще. Уточни.
    Имей ввиду, что операции с файловой системой - штука ненадёжная. Лови исключения, выброшенные shutil.copyfile(), и логгируй их!
    Ответ написан 03 июн.
    3 комментария
    3 комментария
  • NodeJS Как генерировать пароль в Passport?

    Sardort2001 @Sardort2001
    const { Router } = require('express')
    const router = Router()
    const Users = require('../models/Users')
    const bcrypt = require('bcryptjs')
    const fileUpload = require('../middleware/fileUpload.js')
    
    router.get('/signin', (req, res, next) => {
        res.render('user/signin', {
            title: 'User sign in'
        })
    })
    
    router.get('/signout', (req, res) => {
        req.session.destroy(() => {
            res.redirect('/user/signin')
        })
    })
    
    router.post('/signin', async (req, res) => {
        try {
            const { nickname, password } = req.body
    
    
            const candidateUser = await Users.findOne({ nickname })
            if (candidateUser) {
                const areSame = await bcrypt.compare(password, candidateUser.password) //true || false
                if (areSame) {
                    req.session.userAuth = true
                    req.session.users = candidateUser
                    res.redirect('/users')
                } else {
                    res.redirect('/user/signin')
                }
            } else {
                res.redirect('/user/signin')
            }
        } catch (error) {
            console.log(error);
        }
    });
    
    router.get('/signup', (req, res) => {
        res.render('user/signup', {
            title: 'User sign up'
        })
    })
    
    router.post('/signup', async (req, res) => {
        const { nickname, name, password } = req.body
        const userHasPassword = await bcrypt.hash(password, 10)
    
        const users = new Users({
            nickname,
            name,
            password: userHasPassword,
        })
    
        await users.save()
        res.redirect('/user/signin')
    })
    
    
    module.exports = router
    Ответ написан 17 февр.
    Комментировать
    Комментировать
  • Как запустить уже авторизованную в Chrome страницу через Selenium?

    alternativshik
    alternativshik @alternativshik
    подсунь ему куки
    Ответ написан более двух лет назад
    Комментировать
    Комментировать
  • Как по cookies войти в личный кабинет на Selenium?

    alternativshik
    alternativshik @alternativshik
    Надо сначала сделать запрос к сайту, а потом вешать куки.
    Ответ написан более двух лет назад
    6 комментариев
    6 комментариев
  • Как Selenium авторизуется на сайтах?

    coderisimo
    coderisimo @coderisimo
    Это творческий процесс! ))) Для начала какой у вас user agent ? HeadlessChrome ? Если да - используйте нечто более подходящее.

    from selenium.webdriver.chrome.options import Options
    opts = Options()
    opts.add_argument("user-agent=здесь какой-нибудь Хром Юзер Агент", executable_path=chromedriver)
    
    browser = webdriver.Chrome(chrome_options=opts)
    Ответ написан более двух лет назад
    2 комментария
    2 комментария
  • Как исключить многократную загрузку Javascript?

    Артур Карапетян @architawr
    "Ok, Google" и все твои проблемы решены
    Вам нужен sessionStorage.
    тык
    тык
    тык
    Ответ написан более двух лет назад
    Комментировать
    Комментировать
  • Как корректировать текст или стили в открывшейся Web странице?

    Mr_Sergo
    Mr_Sergo @Mr_Sergo
    https://codepen.io/Mr_Sergo/pen/wvvBZRb?editors=1010

    Так?
    Ответ написан более двух лет назад
    9 комментариев
    9 комментариев
  • Как выполнить кроссерверный GET запрос из Javascript?

    irishmann
    irishmann @irishmann
    Научись пользоваться дебаггером
    1 вариант если есть backend, например, php, то обращаемся к нему, а он же в свою очередь дергает сторонний ресурс, через cURL и отдает результат.
    2 вариант cors-proxy
    Ответ написан более двух лет назад
    Комментировать
    Комментировать
  • Как выполнить кроссерверный GET запрос из Javascript?

    delphinpro
    Сергей delphinpro @delphinpro
    frontend developer
    Проксируйте через свой сервер.
    Делайте запрос к себе, у себя сервером забирайте разметку с чужого сайта, парсите и отдавайте нужные значения на фронт.
    Ответ написан более двух лет назад
    Комментировать
    Комментировать
  • Как исправить ошибку в телеграмм боте: AttributeError: 'Bot' object has no attribute 'message_handler'?

    Taus @Taus
    Вы перепутали библиотеки telepot (пример) с telebot (пример).
    Ответ написан более двух лет назад
    Комментировать
    Комментировать
  • Как в Windows пропускать весь трафик через прокси?

    zlo1 @zlo1
    proxifier + socks proxy или как было сказано выше - VPN
    Ответ написан более двух лет назад
    7 комментариев
    7 комментариев
  • Как в Windows пропускать весь трафик через прокси?

    Zoominger
    Рональд Макдональд @Zoominger Куратор тега Windows
    System Integrator
    Запуская ПО для проверки IP

    ПО, я так понимаю, не веб.

    Смотрите - вы настроили HTTP-прокси, которое работает на 80-м порту.
    Разумеется, в браузере будет показываться IP прокси, потому что браузер работает с 80-м портом (ну 443 ещё), но другие программы будут выдавать ваш реальный IP, потому что работают не на 80-ом порту.

    Вы перепутали прокси с VPN, вам нужен второй.
    Ответ написан более двух лет назад
    1 комментарий
    1 комментарий
  • Как решить ошибку Error: Route.post() requires a callback function but got a [object Object]?

    inoise
    Иван Шумов @inoise Куратор тега Amazon Web Services
    Solution Architect, AWS Certified, Serverless
    Вопросов, не читая код несколько. Начиная с того почему для статики не использовать CDN и заканчивая тем какого фига вы используете ключи в коде
    Ответ написан более трёх лет назад
    5 комментариев
    5 комментариев
  • Как запустить фронтенд оболочку из готового github проекта?

    Анатолий Жаров @SeaBreeze876
    Front-end разработчик
    сервер из этого стартеркита не хостит статику, для раздачи фронта вам нужен отдельный сервер (webpack-dev-server, nginx в проде). Этот стартеркит дружит с webpack-dev-serverом, выполните "npm start" в папке с фронтом. Еще момент, ваш сервер слушает 3000 порт (согласно настройкам), webpack-dev-server будет слушать 3001
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Кто нибудь делил приложение Node.JS на несколько частей?

    Иван Корюков @MadridianFox
    Web-программист, многостаночник
    Годно
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Что лучше использовать для редиректа на 80 порт?

    POS_troi
    ТыжСисАдмин @POS_troi
    СадоМазо Админ, флудер, троль.
    Удалить из iptables правило ибо это изврат ещё тот.
    Поставить Nginx и настроить proxy_pass и не важно сколько там чего у вас динамического и статического.

    server {
        listen 80;
        server_name hostname.com;
        access_log /var/log/nginx/host-access.log;
        error_log /var/log/nginx/host-error.log;
    
    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Real-IP $remote_addr;
        }
    }
    Ответ написан более трёх лет назад
    2 комментария
    2 комментария
  • Каким образом можно воспроизвести аудио файл?

    Chefranov
    Eugene Chefranov @Chefranov
    Новичок
    var audio = new Audio('audio_file.mp3');
    audio.play();
    Ответ написан более трёх лет назад
    7 комментариев
    7 комментариев
  • Какой клиент MySQL под Windows посоветуете?

    Rikcon
    Rikcon @Rikcon
    https://www.valentina-db.com/ru/valentina-studio-o...

    Валентина тоже хороша )
    Ответ написан более трёх лет назад
    4 комментария
    4 комментария
  • Как грамотно организовать пробный период работы приложения?

    shmatuan
    shmatuan @shmatuan
    8 year of Web, 5 years of Vue
    Отсюда вопрос: Как можно получить подобную дату?


    function addDays(date, days) {
      var result = new Date(date);
      result.setDate(result.getDate() + days);
      return result;
    }
    
    addDays(new Date(), 3)
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как грамотно организовать пробный период работы приложения?

    EShein
    Евгений @EShein
    Shein
    Я думаю проще будет писать дату + 3 дня и сверять сегодняшнюю с датой в базе 
    Как получить дату?
    let date = new Date();
    date.setDate(date.getDate() + 3);

    Либо библиотека moment.
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
Оценили как «Нравится»
  • 1
  • 2
  • Следующие →
Самые активные сегодня
  • meDveD_spb
    meDveD_spb
    • 8 ответов
    • 0 вопросов
  • PavelMos
    • 6 ответов
    • 0 вопросов
  • Никита Савченко
    • 2 ответа
    • 4 вопроса
  • FKV
    • 5 ответов
    • 0 вопросов
  • dimonchik2013
    Dimonchik
    • 5 ответов
    • 0 вопросов
  • Alexandroppolus
    Alexandroppolus
    • 4 ответа
    • 0 вопросов
  • © Habr
  • О сервисе
  • Обратная связь
  • Блог

Войдите на сайт

Чтобы задать вопрос и получить на него квалифицированный ответ.
Войти через центр авторизации