节点文件上传以 502 Gateway Error 结束

Node file upload ends with 502 Gateway Error

我正在尝试使用 request 模块将文件上传到 Telegram's Bot API。但是,我最终遇到了 502 网关错误。这是我的代码:

var request = require("request");
var fs = require("fs");
fs.readFile("image.png",function(err,data){
    var formdata = {};
    formdata.chat_id = <chatid>;
    formdata.photo = data;
    if(err)
      console.log(err);
    request({
      url : "https://api.telegram.org/bot<token>/sendPhoto",
      method : "POST",
      headers : {
        "Content-Type" : "multipart/form-data"
      },
      formData : formdata
    },function(err,res,body){
        if(err)
          console.log(err)
        console.log(body);
    })
});

这是上传文件的正确方法还是我哪里出错了?

我建议,你最好使用请求对象的form字段,这样你就可以使用createReadStream函数发送文件fs module.For 示例:

var r = request.post({
        url: url
      },someHandler);

var form = r.form();
form.append('file',fs.createReadStream(filePath));

正确使用请阅读:

https://nodejs.org/api/fs.html#fs_fs_createreadstream_path_options https://github.com/request/request#forms