Skip to content

Instantly share code, notes, and snippets.

@alepez
Last active September 3, 2022 11:04
Show Gist options
  • Save alepez/9205394 to your computer and use it in GitHub Desktop.
Save alepez/9205394 to your computer and use it in GitHub Desktop.
nodejs file transfer with http post
var request = require('request');
var path = require('path');
var fs = require('fs');
var filename = process.argv[2];
var target = 'http://localhost:3000/upload/' + path.basename(filename);
var rs = fs.createReadStream(filename);
var ws = request.post(target);
ws.on('drain', function () {
console.log('drain', new Date());
rs.resume();
});
rs.on('end', function () {
console.log('uploaded to ' + target);
});
ws.on('error', function (err) {
console.error('cannot send file to ' + target + ': ' + err);
});
rs.pipe(ws);
var express = require('express');
var http = require('http');
var path = require('path');
var fs = require('fs');
var app = express();
app.set('port', process.env.PORT || 3000);
app.use(express.logger('dev'));
app.use(express.methodOverride());
app.use(app.router);
app.use(express.errorHandler());
app.post('/upload/:filename', function (req, res) {
var filename = path.basename(req.params.filename);
filename = path.resolve(__dirname, filename);
var dst = fs.createWriteStream(filename);
req.pipe(dst);
dst.on('drain', function() {
console.log('drain', new Date());
req.resume();
});
req.on('end', function () {
res.send(200);
});
});
http.createServer(app).listen(app.get('port'), function () {
console.log('Express server listening on port ' + app.get('port'));
});
@renaudfractale
Copy link

Merci cela fonctionne chez moi

@TaxMachine
Copy link

why creating an http server when express literally does that ???

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment