一、问题描述

我有一个用 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')))

四、结果

然后就可以了,能正常使用了

文章来源

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: