Node.js: удаленная отправка форм - PullRequest
1 голос
/ 21 октября 2011

В настоящее время я работаю над своего рода веб-прокси для Node.js, но у меня возникают проблемы с отправкой форм, на большинстве сайтов я могу успешно отправить форму, но на некоторых других сайтах мне не так повезло. Я не могу точно определить, есть ли что-то, что я делаю неправильно.

Есть ли лучший способ сделать это?

Кроме того, как бы я мог обрабатывать многочастные формы с помощью bodyparser Express.js?

На данный момент вот что у меня есть в способе обработки форм:

function proxy(req, res,request)
{ 

var sess = req.session;

var onUrl_Parse = function(url){
        var  Uri= new URI.URI(url);//Parses incoming url
            var options = {
                uri: url,
                method: req.method
            }

                options.headers={"User-Agent": "Mozilla/5.0 (Windows  NT 6.1; rv:6.0) Gecko/20110814 Firefox/6.0", "Cookie":req.session.cook};



        if(req.body) //If x-www-form-urlencoded is posted.
        {
            var options = {
                uri: url,
                method: req.method,
                body: req.rawBody
            }
                options.headers={"User-Agent": "Mozilla/5.0 (Windows  NT 6.1; rv:6.0) Gecko/20110814 Firefox/6.0", "Cookie":req.session.cook, "Content-Type":"application/x-www-form-urlencoded"};
        }


    onRequestOptions(options, url);
}

,onRequestOptions = function(options, url)
{       
    request(options, function(error, response, body)
    {       
            if(!error){
                    if(response.headers['set-cookie'])
                        req.session.cook=response.headers['set-cookie'];
                Proxy_Parser.Parser(body, url, async, onParse);// Parses returned html return displayable content
            }

    });
}

,onParse = function(HTML_BODY)
    {
        if(HTML_BODY=="")
            res.end();
        res.write(HTML_BODY);
        res.end();
        console.log("DONEEEEE");
    }   



Url_Parser.Url(req, URI, onUrl_Parse);

}

Ответы [ 2 ]

0 голосов
/ 21 октября 2011

Я бы начал с чего-то вроде node-http-proxy .Вся тяжелая работа сделана для вас, и вы можете просто определить маршруты, которые вы хотите прокси, и добавить некоторые обработчики для информации о пользовательских ответах.

0 голосов
/ 21 октября 2011

Я не уверен, что именно вы пытаетесь достичь, но https://github.com/felixge/node-formidable в любом случае рекомендуется !!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...