Запрос на загрузку файла хранилища компонентов обратной связи прерван formidable\lib\coming_form.js

Я успешно настроил компонент хранения loopback, т.е. loopback-component-storage. Я был в состоянии создавать папки. Но когда я пытаюсь загрузить файлы (используя почтальон), он продолжает выдавать ошибку прерванного запроса:

error:  Error: Request aborted
    at IncomingMessage.<anonymous> (E:\projects\TestProject\node_modules\formidable\lib\incoming_form.js:120:19)
    at emitNone (events.js:86:13)
    at IncomingMessage.emit (events.js:185:7)
    at abortIncoming (_http_server.js:283:11)
    at TLSSocket.serverSocketCloseListener (_http_server.js:296:5)
    at emitOne (events.js:101:20)
    at TLSSocket.emit (events.js:188:7)
    at _handle.close (net.js:498:12)
    at Socket.done (_tls_wrap.js:325:7)
    at Socket.g (events.js:291:16)
    at emitOne (events.js:96:13)
    at Socket.emit (events.js:188:7)
    at TCP._handle.close [as _onclose] (net.js:498:12)

Я также настроил SSL, поэтому URL-адрес https://localhost/api/containers/container1/upload. Может ли это быть проблемой? Я использую следующие модули в моем package.json.

  "dependencies": {
    "body-parser": "^1.17.1",
    "compression": "^1.6.2",
    "cors": "^2.8.1",
    "express": "^4.15.2",
    "helmet": "^3.4.1",
    "js2xmlparser": "^3.0.0",
    "loopback": "^3.4.0",
    "loopback-boot": "^2.23.0",
    "loopback-component-explorer": "^4.1.1",
    "loopback-component-storage": "^3.2.0",
    "loopback-connector-rest": "^2.1.0",
    "loopback-datasource-juggler": "^3.2.0",
    "loopback-ssl": "0.0.9",
    "multer": "^1.3.0",
    "strong-error-handler": "^2.1.0",
    "winston": "^2.3.1"
  }

Файл server.js выглядит следующим образом:

'use strict';

var loopback = require('loopback');
var boot = require('loopback-boot');
var loopbackSSL = require('loopback-ssl');
var bodyParser = require('body-parser');
var multer = require('multer');

var app = module.exports = loopback();
app.use(bodyParser.text());

app.start = function () {
  // start the web server
  return app.listen(function () {
    app.emit('started');
    var baseUrl = app.get('url').replace(/\/$/, '');
    console.log('Web server listening at: %s', baseUrl);
    if (app.get('loopback-component-explorer')) {
      var explorerPath = app.get('loopback-component-explorer').mountPath;
      console.log('Browse your REST API at %s%s', baseUrl, explorerPath);
    }
  });
};

// Bootstrap the application, configure models, datasources and middleware.
// Sub-apps like REST API are mounted via boot scripts.
boot(app, __dirname, function (err) {
  if (err) throw err;

  if (require.main === module)
    return loopbackSSL.startServer(app);
});

Может ли какой-либо из вышеперечисленных модулей быть проблемой? Похоже, это сложная проблема для узла. Кто-нибудь может дать мне знать? Можем ли мы написать удаленный метод для приема файлов?

2 ответа

Решение

Я смог решить эту проблему, удалив

app.use(bodyParser.text());

из server.js. Файлы загружаются сейчас.

Хотел оставить комментарий для других зрителей (но мне не хватает репутации), так как у меня была похожая проблема, и удаление следующего помогло мне:

app.use(multer({storage: storage}).any())

Спасибо за публикацию этого и найденного вами решения, мое решение было практически идентичным.

Другие вопросы по тегам