gpt4 book ai didi

javascript - feathersjs中request entity too large错误如何解决?

转载 作者:行者123 更新时间:2023-11-30 08:24:51 26 4
gpt4 key购买 nike

我在 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: []
}
};

我正在使用 postman 上传 csv 文件

enter image description here

最佳答案

我在 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
}));

关于javascript - feathersjs中request entity too large错误如何解决?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47449667/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com