2011-04-17 46 views

回答

3
var options = { 
    host: 'www.google.com', 
    port: 80, 
    path: '/upload', 
    method: 'POST', 
    headers: ... 
}; 

var req = http.request(options, function(res) { 
    console.log('STATUS: ' + res.statusCode); 
    console.log('HEADERS: ' + JSON.stringify(res.headers)); 
    res.setEncoding('utf8'); 
    res.on('data', function (chunk) { 
    console.log('BODY: ' + chunk); 
    }); 
}); 

http.request文档。

基本上,您可以使用方法向主机/端口+路径请求散列意见。然后处理来自该服务器的响应。

+0

我相信他正在尝试创建一个HTTP服务器,而不是客户端。 – igorw 2011-04-17 13:24:44

+0

谢谢。我这样做,但是当我创建JSON字符串时,值传递错误,请参阅:http://stackoverflow.com/questions/5693247/node-js-create-json-and-post-to-postbin – donald 2011-04-17 13:24:58

+0

@igorw他想要POST到节点中的URL。 – Raynos 2011-04-17 13:25:42

1

从Node.js的主页:

var http = require('http'); 
http.createServer(function (req, res) { 
    res.writeHead(200, {'Content-Type': 'text/plain'}); 
    res.end('Hello World\n'); 
}).listen(8124, "127.0.0.1"); 
console.log('Server running at http://127.0.0.1:8124/'); 

您可以访问REQ对象来获得数据。

对于更高层次的方法,请查看express.js

你可以做这样的事情:

var app = express.createServer(); 

app.post('/', function(req, res){ 
    res.send('Hello World'); 
}); 

app.listen(3000); 
+0

我需要服务器还是客户端?我不明白为什么我需要创建一个服务器到POST。谢谢 – donald 2011-04-17 21:17:12

+0

@唐纳德你没有。您需要一台服务器来处理传入的数据。你想发布数据到另一台服务器,所以这个答案是不相关的。 – Raynos 2011-04-17 22:39:55

+0

原始问题不明确。我以为他在问如何接收HTTP POST。 – kcbanner 2011-04-23 05:41:20

0

我强烈推荐Node.js的模块restler

rest.post('http://user:[email protected]/action', { 
    data: { id: 334 }, 
}).on('complete', function(data, response) { 
    if (response.statusCode == 201) { 
     // you can get at the raw response like this... 
    } 
});