[英]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.