如何使用Node的Rest客户端上传文件

19

我在Node上有一个REST客户端,我正在尝试将PDF文件上传到另一个REST Web服务器,该服务器提供解析PDF并提取一些数据的功能。基本上它是一个服务。我使用的npm包是:https://www.npmjs.com/package/node-rest-client。如果有其他REST客户端,我也可以使用那些。我需要使用的REST API如下所述:

POST    /         ; Uploads a new PDF document via a form <br>
POST    /file     ; Uploads a new PDF document via bytestream

问题是如何上传文件。另外,我想知道如何在另一端存储文件。

2个回答

12
你可以使用npm模块 request 来上传文件。 这里是一个可行的例子
var request = require('request');
var fs = require('fs');
request({
  method: 'PUT',
  preambleCRLF: true,
  postambleCRLF: true,
  uri: 'http://yourdomain/file',
  multipart: [
    {
      'content-type': 'application/pdf',
      body: fs.createReadStream('image.png') 
    }
  ]    
},
function (error, response, body) {
  if (error) {
    return console.error('upload failed:', error);
  }
  console.log('Upload successful!  Server responded with:', body);
});

要在服务器端使用Node.js接收数据,您可以使用像busboy这样的模块。这是一个演示:

var busboy = require('connect-busboy');
app.use(busboy());
app.use(function(req, res) {
  if (req.busboy) {
    req.busboy.on('file', function(fieldname, file, filename, encoding,    mimetype) {
      // move your file etc
    });
    req.pipe(req.busboy);
  }
});

4
你可以使用 request 库。
这里有一个示例。
fs.createReadStream('file.pdf').pipe(request.post('http://example.com/file'))

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接