Показать сообщение отдельно
  #3 (permalink)  
Старый 25.03.2018, 20:03
Профессор
Отправить личное сообщение для Audaxviator Посмотреть профиль Найти все сообщения от Audaxviator
 
Регистрация: 28.04.2017
Сообщений: 214

Я бы так попробовал чиста для интереса.
async function onRequest(req, res) {
  var parsed = url.parse(req.url, true);
  switch (parsed.pathname) {
    case '/':
    case '/index.html':
      fs.readFile('index.html', function(err, file) {
        if (err) res.end();
        res.end(file);
      });
      break;
    case '/file':
      await uploadFile(req);
      var l = await changeImage({
                'uploadfile': fs.createReadStream('./files/temp.jpg'),
                'ef-set': 10,
                'ef-set-2': 10,
                'jpeg-quality': 80
              }, 'https://www.imgonline.com.ua/grid-square-result.php',
              'http://www.imgonline.com.ua/',
              new RegExp(/download\.php\?file=.+?\.jpg/));
      await loadFile(l);
      res.end('files/temp.jpg')
      break;
    default:
      fs.readFile('./' + req.url, function(err, file) {
        if (err) res.end();
        res.end(file);
      });
  }
}

function changeImage(formData, url, link, regExp) {
  return new Promise( (resolve, reject) => {
    request.post(
      {
        url: url,
        formData: formData
      },
       function(err, resp, body) {
      if (err) {
        console.log('ERR: ', err);
      }
      console.log(body);
      link += body.match(regExp);
      resolve(link);
    });
  });
}

Я вот не знаю, можно ли тут запилить async-функцию в качестве хендлера? Не пробовал.
Теоретически - а почему нет?

Последний раз редактировалось Audaxviator, 25.03.2018 в 20:20.
Ответить с цитированием