PayloadTooLargeError:使用Angular 7和Node.js Express上传图片时请求实体太大

时间:2019-04-08 07:14:30

标签: node.js angular

我正在使用angular 7和nodejs express。我要实现上传图片。 我的角度服务如下:

 postImage(fileToUpload: File) { 
    const formData = new FormData(); 
    formData.append("image", fileToUpload, fileToUpload.name); 
    return this.http.post(`${this.uri}/upload`, formData); 
  }

nodejs代码如下:

const multer = require("multer"); 
var storage = multer.diskStorage({ 
  //multers disk storage settings 
  destination: function(req, file, cb) { 
    cb(null, "./uploads/"); 
  }, 
  filename: function(req, file, cb) { 
    var datetimestamp = Date.now(); 
    cb( 
      null, 
      file.fieldname + 
        "-" + 
        datetimestamp + 
        "." + 
        file.originalname.split(".")[file.originalname.split(".").length - 1] 
    ); 
  } 
}); 
app.post("/upload", function(req, res) {
  upload(req, res, function(err) {
    if (err) {
      res.json({ error_code: 1, err_desc: err });
      return;
    }
    res.json({ error_code: 0, err_desc: null });
  });
});
app.use(bodyParser.json({ limit: "50mb" })); 
app.use(bodyParser.urlencoded({ limit: "50mb", extended: true })); 
var upload = multer({ 
  //multer settings 
  storage: storage, 
  limits: { fileSize: 100000000000 } 
}).single("file"); 

但是我遇到了这个问题:

TypeError: app.enableCors is not a function 
    at Object.<anonymous> (D:\Projects\ServerShop\index.js:14:5) 
    at Module._compile (internal/modules/cjs/loader.js:688:30) 
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:699:10) 
    at Module.load (internal/modules/cjs/loader.js:598:32) 
    at tryModuleLoad (internal/modules/cjs/loader.js:537:12) 
    at Function.Module._load (internal/modules/cjs/loader.js:529:3) 
    at Function.Module.runMain (internal/modules/cjs/loader.js:741:12) 
    at startup (internal/bootstrap/node.js:285:19) 
    at bootstrapNodeJSCore (internal/bootstrap/node.js:739:3)

1 个答案:

答案 0 :(得分:0)

尝试将此行添加到代码的正文分析器行下方。

var cors = require('cors');
app.use(cors());