2015-11-09 207 views
1

我需要將一些數據status=1發送到另一臺服務器上的PHP文件,該文件將更新數據庫中的一行。有沒有簡單的方法使用Node.js發送POST請求?

這是似乎是這樣:

var data = { 
    var1:"something", 
    var2:"something else" 
}; 
var querystring = require("querystring"); 
var qs = querystring.stringify(data); 
var qslength = qs.length; 
var options = { 
    hostname: "example.com", 
    port: 80, 
    path: "some.php", 
    method: 'POST', 
    headers:{ 
     'Content-Type': 'application/x-www-form-urlencoded', 
     'Content-Length': qslength 
    } 
}; 

var buffer = ""; 
var req = http.request(options, function(res) { 
    res.on('data', function (chunk) { 
     buffer+=chunk; 
    }); 
    res.on('end', function() { 
     console.log(buffer); 
    }); 
}); 

req.write(qs); 
req.end(); 

我必須發送一個簡單的「1」,所以必須有一個更好的辦法。我已閱讀關於節點「請求」庫的信息,但我不希望爲此任務安裝另一個擴展。

回答

0

使用niddle,使用:npm install needle進行安裝。

一個簡單的帖子可以這樣進行:

var needle = require('needle'); 

var options = { 
    headers: { 'Content-Type': 'application/x-www-form-urlencoded'} 
} 

needle.post('http://example.com/some.php', 'status=1', options, function(err, resp) { 
    //... 
}); 
+0

謝謝,這是一個很好的和輕量級的圖書館! (^_^) –

0
but honestly for this task I would rather not instal a whole nother extension. 

節點標準庫被設計爲低級別,不要害怕安裝將低級別的東西抽象出來的模塊。大多數節點應用程序都會包含大量小型公用程序模塊。

如果您被request的複雜性所嚇倒,您可能想要查看got,它與請求一樣是一個簡約的http庫。