有没有一种使用Node.js发送POST请求的简单方法?

时间:2015-11-09 20:24:52

标签: javascript node.js post

我需要将一些数据status=1发送到另一台服务器上的PHP文件,该服务器将更新数据库中的一行。

这似乎就是这样:

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'所以必须有一个更好的方法。我已阅读有关节点'请求'库,但我不想为此任务安装另一个扩展程序。

2 个答案:

答案 0 :(得分:0)

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

节点标准库设计为低级别,不要害怕安装抽取低级别东西的模块。您找到的大多数节点应用程序将包含大量小型实用程序模块。

如果您对request的复杂性感到沮丧,您可能需要查看got这是一个简约的http库,就像请求一样。

答案 1 :(得分:0)

使用needle,使用以下代码进行安装: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) {
  //...
});