I'm newbie in node and I'm having a little trouble. I'm using express in node, and trying to upload a image as a base64 for blob in sql DB. If the image is under 50kb, upload else got
PayloadTooLargeError: request entity too large.
I have tried:
error-request-entity-too-large
request-entity-too-large-how-to-increase-bodyparser-limit
And nothing worked for me or am I doing anything wrong. Can someone help me?
The code:
crud.js (converting to vue2 the methods)
const app = new Vue({
el: "#main",
data:{
id_filme: 2,
titulo: "",
imagem: "",
lancamento: "",
avaliacao: ""
},
mounted(){
},
watch:{
},
computed:{
},
methods:{
getDados(){
},
editar(){
axios.post('/atualizar/'+ this.id_filme, {
id_filme: this.id_filme,
titulo: this.titulo,
imagem: this.imagem,
lancamento: this.lancamento,
avaliacao: this.avaliacao
})
.then(function (res) {
console.log(res);
})
.catch(function (error) {
// alert("Erro","Ocorreu um erro de servidor, entrar em contato com o analista responsável.","error")
alert("Erro")
console.error('falhou verifique a informação', error);
});
},
encodeImageFileAsURL() {
document.getElementById("capa").innerHTML = "";
var filesSelected = document.getElementById("imagem").files;
if (filesSelected.length > 0) {
var fileToLoad = filesSelected[0];
// console.log(fileToLoad)
var fileReader = new FileReader();
fileReader.onload = function(fileLoadedEvent) {
var srcData = fileLoadedEvent.target.result; // <--- data: base64
var newImage = document.createElement('img');
newImage.src = srcData;
app.imagem = srcData
document.getElementById("capa").innerHTML = newImage.outerHTML;
}
console.log(app.imagem)
fileReader.readAsDataURL(fileToLoad);
}
}
}
})
index.js
'use strict'
const filmes = require('../models/filmes'),
express = require('express'),
bodyParser = require('body-parser')
const erro404 = (req, res, next) => {
let erro = new Error(),
locals = {
titulo: "Erro",
descricao: "Página não encontrada !",
contato: "Entre em contato com o administrador do sistema.",
erro: erro
}
erro.status = 404
res.render('erro.jade', locals)
next()
}
var app = express()
app
.use(bodyParser.json({limit: '50mb'}))
.use(bodyParser.urlencoded({
limit: '50mb',
extended: true,
parameterLimit:50000
}))
.use(filmes)
.get('/', (req, res, next) => {
req.getConnection((err, filmes) => {
filmes.query('SELECT * FROM filmes', (err, rows) =>{
if (err){
next(new Error('Não há filmes.'))
}else{
let locals = {
principal: 'Lista de Filmes',
dados: rows
}
res.render('index', locals)
}
})
})
//next()
})
.get('/add', (req,res, next) => {
res.render('add_filmes.jade', {principal: 'Lista de Filmes', titulo: 'Adicionar Filme'})
})
.post('/', (req, res, next) => {
req.getConnection((err, filmes) => {
let filme = {
id_filme: req.body.id_filme,
titulo: req.body.titulo,
lancamento: req.body.lancamento,
avaliacao: req.body.avaliacao,
imagem: req.body.imagem
}
console.log(filme)
filmes.query('INSERT INTO filmes SET ?', filme, (err, rows) =>{
return (err) ? next(new Error('Erro ao inserir o filme.')) : res.redirect('/')
})
})
})
.get('/editar/:id_filme', (req, res, next) => {
let id_filme = req.params.id_filme
console.log(id_filme)
req.getConnection((err, filmes) => {
filmes.query('SELECT * FROM filmes WHERE id_filme = ?', id_filme, (err, rows) => {
console.log(err, "---", rows)
if(err){
next(new Error('Erro ao pegar os dados do filme.'))
}else{
let locals = {
principal: 'Lista de Filmes',
titulo: 'Editar Filme',
dados: rows
}
res.render('editar_filme.jade', locals)
}
})
})
})
.post('/atualizar/:id_filme', (req, res, next)=>{
console.log(JSON.stringify(req.body))
req.getConnection((err, filmes) => {
let filme = {
id_filme: req.body.id_filme,
titulo: req.body.titulo,
lancamento: req.body.lancamento,
avaliacao: req.body.avaliacao,
imagem: req.body.imagem
}
console.log(filme)
filmes.query('UPDATE filmes SET ? WHERE id_filme = ?', [filme, filme.id_filme], (err, rows) =>{
return (err) ? next(new Error('Erro ao atualizar o filme.')) : res.redirect('/')
})
})
})
.post('/excluir/:id_filme', (req, res, next)=>{
let id_filme = req.params.id_filme
console.log(id_filme)
req.getConnection((err, filmes) => {
filmes.query('DELETE FROM filmes WHERE id_filme = ?', id_filme, (err, rows) => {
console.log(err, "---", rows)
return (err) ? next(new Error('Registro não encontrado !')) : res.redirect('/')
})
})
})
.use(erro404)
module.exports = app
```
<b>Thanks in advance.</b>.