我目前正在为Node.js开发一种Web代理,但我在提交表单方面遇到了麻烦,在大多数网站上我都能成功提交表单,但在其他一些网站上我并不是那么幸运。我无法确定是否有任何我做错的事。
有没有更好的方法呢?
另外,我如何使用Express.js bodysarser处理多部分表单?
目前,我对表单处理的方式是:
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);
}
答案 0 :(得分:0)
我不确定你到底想要完成什么,但https://github.com/felixge/node-formidable无论如何都是推荐!!
答案 1 :(得分:0)
我会从node-http-proxy开始。所有艰苦的工作都是为您完成的,您只需定义要代理的路由,并将一些处理程序放入自定义响应信息中。