[英]How resolve request entity too large error in feathersjs?
我正在Feathers服务中上传csv文件,文件大小为203kb,它抛出一个错误请求实体,错误太大,像这样。
错误:
{
"name": "GeneralError",
"message": "request entity too large",
"code": 500,
"className": "general-error",
"data": {},
"errors": {}
}
我正在写类似这样的中间件代码,但我无法解决
app.js:
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
location.service.js:
// Initializes the `location` service on path `/location`
const createService = require('feathers-mongoose');
const createModel = require('../../models/location.model');
const hooks = require('./location.hooks');
const filters = require('./location.filters');
const multer = require('multer');
const multipartMiddleware = multer();
module.exports = function () {
const app = this;
const Model = createModel(app);
const paginate = app.get('paginate');
const options = {
name: 'location',
Model,
paginate
};
// Initialize our service with any options it requires
app.use('/location',
multipartMiddleware.single('uri'),
(req, res, next) => {
req.feathers.file = req.file;
next();
},
createService(options)
);
// Get our initialized service so that we can register hooks and filters
const service = app.service('location');
service.hooks(hooks);
if (service.filter) {
service.filter(filters);
}
};
location.hooks.js:
const { authenticate } = require('feathers-authentication').hooks;
module.exports = {
before: {
all: [ authenticate('jwt') ],
find: [],
get: [],
create: [function(hook, next){
var tHeader = Object.keys(hook.data)[0].split('\n')[0].replace(/\r?\n|\r/g, " ").split(',');
var s = Object.keys(hook.data)[0].split('\n');
s.shift();
var tBody = s.map(d=> d.replace(/\r?\n|\r/g, " ").split(','));
var jointObj = [];
const mergeArrToJSON = (a, b) => a
.map((item, i) => ({[item.replace(/\s+/g,'')]: b[i]}))
.reduce((json,val)=>Object.assign({},json,val));
tBody.forEach(p1=>{
var a = tHeader, b = p1;
jointObj.push(mergeArrToJSON(a,b))
})
var insertObj = [];
jointObj.pop()
jointObj.forEach(d=>{
var Obj = {};
for(k in d) {
var f = /[/]/;
if(f.test(k) == true){
var s = k.split('/');
if(Obj.hasOwnProperty(s[0]) !== true){
Obj[s[0]] = {[s[1].charAt(0).toLowerCase() + s[1].slice(1)]:d[k]};
} else {
Obj[s[0]][s[1].replace(/\s+/g,'')] = d[k].replace(/\s+/g,'');
}
} else {
Obj[k] = d[k];
}
}
insertObj.push(Obj)
});
hook.data = insertObj;
next();
}],
update: [],
patch: [],
remove: []
},
after: {
all: [],
find: [],
get: [],
create: [],
update: [],
patch: [],
remove: []
},
error: {
all: [],
find: [],
get: [],
create: [],
update: [],
patch: [],
remove: []
}
};
我正在使用邮递员上传CSV文件
我在app.js文件中有更改代码
之前:
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
后:
app.use(bodyParser.json({limit: '100mb'}));
app.use(bodyParser.urlencoded({
limit: '100mb',
extended: true
}));
我在Node / express应用程序中遇到了同样的问题,我用了它,它为我解决了这个问题,希望它也对您有用:
app.use(bodyParser.json({limit:1024102420, type:'application/json'}));
我将数字格式用于限制,它指定了字节数
打开app.js文件并替换以下几行
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
用
app.use(express.json({ limit: "50mb" }));
app.use(express.urlencoded({ limit: "50mb", extended: true }));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.