0
Dies ist mein einfacher Express-Service:Knoten schreiben nur die Hälfte von binären Daten
let express = require('express'),
fs = require('fs'),
path = require('path');
var app = express();
app.set("json spaces", 2);
app.use(express.static(__dirname + "/static"));
app.use(function(req, res, next) {
var data = new Buffer('');
req.on('data', function(chunk) {
data = Buffer.concat([data, chunk]);
});
req.on('end', function() {
req.rawBody = data;
next();
});
});
app.post("/upload/:filename", function(req, res) {
let path = "/tmp/" + req.params.filename;
fs.writeFile(path, req.rawBody, "binary", function(error) {
res.send({
message: "sadfasdf"
});
});
});
app.listen(3001, function() {
console.log("Started!");
});
ich dies die binären Daten hochladen tun:
curl -H "Content-Type: application/octet-stream" -X POST http://localhost:3001/upload/test.tiff -d @/home/vagrant/test.tiff
Für eine Datei, die über 1100kb ist, es wird nur tatsächlich über 622kb schreiben. Kann mir jemand sagen, was schief läuft?
Warum leiten Sie den Anforderungsstream an den Pfad weiter, wenn Sie auch in der nächsten Zeile an denselben Pfad schreiben? – peteb
Das war einige Kopie Pasta aus einer früheren Ausgabe. Ich muss das herausnehmen. –