节点js文件上传“请求中止”服务器

时间:2020-05-26 16:40:33

标签: node.js multer formidable

我的“服务器”是Windows 10 Station ace mini pc。我在计算机上安装了节点js以上传文件。我测试multer,强大,express-fileupload等。 我可以上传3 MB的小文件,但如果上传250 MB这样的大文件,则会出现错误。

我认为迷你PC的传输速度很快。我可以处理吗?

开始上传,一分钟后我收到错误消息。

错误:请求中止 在IncomingMessage。 (C:\ Filemanager \ node_modules \ formidable \ lib \ incoming_form.js:122:19) 在IncomingMessage.emit(events.js:315:20) 在abortIncoming(_http_server.js:537:9) 在socketOnClose(_http_server.js:530:3) 在Socket.emit(events.js:327:22) 在TCP。 (net.js:671:12)

const express = require('express');
const fileUpload = require('express-fileupload');
const app = express();

app.get('/', (req, res) => {
  res.send(`
    <h2>With <code>"express"</code> npm package</h2>
    <html>
    <body>
      <form ref='uploadForm' 
        id='uploadForm' 
        action='http://localhost:8000/upload' 
        method='post' 
        encType="multipart/form-data">
          <input type="file" name="sampleFile" />
          <input type='submit' value='Upload!' />
      </form>     
    </body>
  </html>
  `);
});

// default options
app.use(fileUpload());

app.post('/upload', function(req, res) {
  if (!req.files || Object.keys(req.files).length === 0) {
    return res.status(400).send('No files were uploaded.');
  }

  // The name of the input field (i.e. "sampleFile") is used to retrieve the uploaded file
  let sampleFile = req.files.sampleFile;

  // Use the mv() method to place the file somewhere on your server
  sampleFile.mv('/somewhere/on/your/server/filename.jpg', function(err) {
    if (err)
      return res.status(500).send(err);

    res.send('File uploaded!');
  });
});

startServer()

function startServer() {
  var port = 8888;
  server = app.listen(port, function () {
      console.log('Node version:' + process.versions.node);
      console.log('Express server listening on port %d in %s mode', port, app.settings.env);
  });

  server.on('connection', function(socket) {
      // 10 minutes timeout
      socket.setTimeout(10 * 60 * 1000);
  });
}

感谢所有想法。

0 个答案:

没有答案