V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
coolicer
V2EX  ›  Node.js

用 nodejs 转发 http,帮我看看哪里错

  •  
  •   coolicer · 2015-03-09 11:20:02 +08:00 · 4102 次点击
    这是一个创建于 3307 天前的主题,其中的信息可能已经有所发展或是发生改变。
    在cnodejs上发了,没人回答。各位大牛帮一下

    原帖 https://cnodejs.org/topic/54fd0d881e9291e16a7b34f5
    if(req.url == '/data/get' || req.url == 'data/get') {
    var post_data = querystring.stringify({
    proc: 'getConfig'
    });
    console.log('post_data->',post_data)
    var options = {
    host: '192.168.1.246',
    port:80,
    path: '/data/get',
    method: 'POST',
    headers: {
    'Content-Type': 'application/json; charset=UTF-8',
    'Content-Length': post_data.length
    }
    };
    var body = ''
    var client_req = http.request(options, function(res) {
    console.log("Got response: " + res.statusCode);
    res.on('data',function(d){
    body += d;
    }).on('end', function(){
    console.log(res.headers)
    console.log(body)
    });

    }).on('error', function(e) {
    console.log("Got error: " + e.message);
    })
    client_req.write(post_data)
    client_req.end();
    }

    我需要使用服务器的地址(192.168.1.246),把 localhost/data/get转发给192.168.1.246/data/get
    第 1 条附言  ·  2015-03-09 12:39:56 +08:00
    Got response: 500

    { 'cache-control': 'no-cache',
    pragma: 'no-cache',
    'content-type': 'application/json; charset=utf-8',
    expires: '-1',
    server: 'Microsoft-IIS/7.5',
    'x-aspnet-version': '4.0.30319',
    'x-powered-by': 'ASP.NET',
    date: 'Mon, 09 Mar 2015 03:59:49 GMT',
    connection: 'close',
    'content-length': '36' }

    {"Message":"An error has occurred."}
    10 条回复    2015-03-09 20:47:58 +08:00
    typcn
        1
    typcn  
       2015-03-09 12:43:10 +08:00
    这东西为什么要用 node.js 做。。。 nginx 不行吗
    coolicer
        2
    coolicer  
    OP
       2015-03-09 12:55:38 +08:00
    @typcn 尝试一下,主要是mac装不了.net
    hcymk2
        3
    hcymk2  
       2015-03-09 13:14:39 +08:00
    你的asp.net 应用 500 了.
    jackmasa
        4
    jackmasa  
       2015-03-09 13:16:24 +08:00
    格式太乱了,发 gist 吧。
    coolicer
        5
    coolicer  
    OP
       2015-03-09 13:21:48 +08:00
    @jackmasa 我主要想知道options 参数有没有写错,提示500说明也是传了东西过去的
    coolicer
        6
    coolicer  
    OP
       2015-03-09 13:24:13 +08:00
    coolicer
        7
    coolicer  
    OP
       2015-03-09 13:25:14 +08:00
    代码片
    <script src="https://gist.github.com/coolicer/880c617081503e69de70.js"></script>

    怎么直接贴上来不行
    finian
        8
    finian  
       2015-03-09 14:46:00 +08:00
    你自己 debug 一下不就知道哪里错了吗?
    shuson
        9
    shuson  
       2015-03-09 16:39:40 +08:00
    推荐使用
    https://github.com/nodejitsu/node-http-proxy

    你的code有问题,导致enobufs error, 看看这个
    https://github.com/joyent/node/issues/3269
    coolicer
        10
    coolicer  
    OP
       2015-03-09 20:47:58 +08:00
    @shuson 我知道哪错了。是参数那里
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   4674 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 10:03 · PVG 18:03 · LAX 03:03 · JFK 06:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.