一、问题描述
我有一个用 nodejs
的 express
框架编写的后台应用,今天在添加一条数据量比较大记录的时候出现了这样的一个错误。
request entity too large
二、寻找问题
一开始我的直觉是 nginx
的问题,于是就找了关于 nginx
设置的说明,也设置了它的最大请求数据体的大小,结果还是不行。
最终还是从 google 中搜到了,它的问题出在 express
上。
三、解决问题
express 默认的 app.js
里是这样写的:
const app = express()
// view engine setup
app.set('views', path.join(__dirname, 'views'))
app.set('view engine', 'pug')
app.use(logger('dev'))
app.use(express.json()) // <-- 这一行
app.use(express.urlencoded({ extended: false }))
app.use(express.static(path.join(__dirname, 'public')))
根据 StackOverflow
中解答,默认情况下,在没有设置大小限制的时候,默认的大小是 1mb ,所以需要手动设置一下,如下。
https://stackoverflow.com/questions/19917401/error-request-entity-too-large
const app = express()
// view engine setup
app.set('views', path.join(__dirname, 'views'))
app.set('view engine', 'pug')
app.use(logger('dev'))
app.use(express.json({limit: '50mb'})) // <-- 这一行
app.use(express.urlencoded({ extended: false }))
app.use(express.static(path.join(__dirname, 'public')))
四、结果
然后就可以了,能正常使用了