Mam aplikację Express/Node, która jest wdrożona w instancji Heroku. Aplikacja ma punkt końcowy API POST, który oczekuje pliku .json, odczytuje dane i zapełnia aplikację danymi JSON. Poniżej znajduje się kod backend, który obsługuje żądania POST:Nieoczekiwany koniec wejścia - zwinięcie JSON w aplikacji Express/Node
router.route('/data')
.post(function (req, res) {
return DataUtils.storeData(req, res);
});
Utils.storeData = function (req, res) {
req.pipe(req.busboy);
req.busboy.on('file', function (fieldname, file, filename) {
file.on('data', function(data) {
var data;
try {
data = JSON.parse('' + data); // quick casting into a String
var numPersonSessionObj = data.length;
...
// etc etc...
Kiedy staramy się żądanie poprzez zwinięcie komendy poniżej:
curl H "Content-Length: 5567" -f plik [email protected]_data/sample_json.json http://[heroku-instance]/api/data
serwer czasami działa dobrze, i przesyła dane, a inne czasy, rzuca „Nieoczekiwany koniec wejścia” błędu. Wygląda na to, że metoda bufora, z której korzystamy, nie odczytuje wszystkich danych z jakiegoś powodu. Po zarejestrowaniu kodu data.length
w powyższym kodzie (tj. JSON) wydaje się, że żądanie nie powiedzie się, gdy długość danych jest mniejsza niż przypuszczalnie. Czy coś jest nie tak z tym, co czytam w powyższym pliku JSON? Thanks--
można proszę dalszego opracowania na odpowiedź? Podałeś linię kodu, ale nie ma wyjaśnienia, dlaczego odpowiada na to pytanie. Dziękuję Ci. –