2015-06-30 8 views
19

Ho un client REST sul nodo e sto tentando di caricare un file PDF in un altro server web REST che fornisce la possibilità di analizzare il mio pdf ed estrarre alcuni dati. Fondamentalmente è un servizio. Il pacchetto npm che utilizzo è: https://www.npmjs.com/package/node-rest-client. Se ci sono altri clienti di riposo, posso usare anche quelli. Il resto api che ho bisogno di usare è descritto di seguito:Come caricare un file utilizzando un client di riposo per il nodo

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

La domanda è come caricare il file. Inoltre, mi piacerebbe vedere come memorizzare il file all'altra estremità.

risposta

4

È possibile utilizzare request.

V'è un esempio per quel

fs.createReadStream('file.pdf').pipe(request.post('http://example.com/file')) 
11

È possibile utilizzare il modulo NPM request per caricare il file. Ecco un esempio di lavoro

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); 
}); 

Per la ricezione sul lato server con il nodo è possibile utilizzare i moduli come busboy. Ecco una demo per questo

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); 
    } 
}); 
Problemi correlati