【发布时间】:2022-04-14 01:38:23
【问题描述】:
我的快递应用:
var createError = require('http-errors');
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var logger = require('morgan');
var less = require("express-less")
var session = require("express-session")
var FileStore = require("session-file-store")(session)
var router = require('./router');
var app = express();
var bodyParser = require('body-parser');
app.use(bodyParser.json({limit: '50mb'}));
app.use(bodyParser.urlencoded({limit: '50mb', extended: true}));
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'pug');
app.use('/css', less(__dirname + '/less'));
app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));
app.use(session({
secret: "secret message that is obviously not the one i'm using in my code",
resave: true,
saveUninitialized: true
}));
app.use('/', router);
// catch 404 and forward to error handler
app.use(function(req, res, next) {
next(createError(404));
});
// error handler
app.use(function(err, req, res, next) {
// set locals, only providing error in development
res.locals.message = err.message;
res.locals.error = req.app.get('env') === 'development' ? err : {};
// render the error page
res.status(err.status || 500);
res.render('error');
});
module.exports = app;
(只是express-generator生成的代码,有一些补充)
线条
app.use(bodyParser.json({limit: '50mb'}));
app.use(bodyParser.urlencoded({limit: '50mb', extended: true}));
应该将最大限制设置为我设置的最大限制,但是,我已经在互联网上进行了广泛的搜索,但还没有找到可行的解决方案。当我尝试通过 XMLHttpRequest 向服务器发送大于 100kb 的图像时,出现 413(有效负载过大)错误。
还有人建议我使用“MB”而不是“mb”,但这不起作用。
【问题讨论】:
-
您在 bodyParser 下面设置的 express.json() 和 express.urlencoded() 是否会撤消您的大小限制设置?我会尝试删除它。
-
我已经解决了这个问题,但我不记得是如何解决的,但它与我认为的请求标头有关
-
我的问题最终是 nginx 中的 client_max_body_size 值(甚至不在我的配置中,所以它最终默认为 1m)
-
实际上,这听起来是对的。 ??????
标签: javascript express file-upload xmlhttprequest